Re: FactorInteger Print Formatting
- To: mathgroup at christensen.cybernetics.net
- Subject: [mg719] Re: FactorInteger Print Formatting
- From: wagner at bullwinkle.cs.Colorado.EDU (Dave Wagner)
- Date: 11 Apr 1995 16:43:46 GMT
- Organization: University of Colorado, Boulder
>Alan Powell <POWELLA at delphi.com> wrote: > >>Could anyone suggest a neat way to reformat the output of >>FactorInteger into a more usable print format? >< details deleted > Here is a method that prints an integer factorization in standard Mathematica OutputForm. (Be sure to view this message using a fixed-width font.) The basic strategy I took was this: is there some way I can construct an expression that *would* evaluate the factorization, but keep it wrapped in HoldForm so that it doesn't evaluate, but looks like it should? Here goes: In[23]:= FactorInteger[238500] Out[23]= {{2, 2}, {3, 2}, {5, 3}, {53, 1}} n[24]:= Hold[Times] @@ Apply[Hold[Power], %, {1}] Out[24]= Hold[Times][Hold[Power][2, 2], Hold[Power][3, 2], Hold[Power][5, 3], Hold[Power][53, 1]] In[25]:= HoldForm[Evaluate[%]] Out[25]= Hold[Times][Hold[Power][2, 2], Hold[Power][3, 2], Hold[Power][5, 3], Hold[Power][53, 1]] (* Note that HoldForm holds its argument but doesn't print *) (* Now get rid of the individual Hold's *) In[26]:= % /. Hold[x_] -> x Out[26]= 2 2 3 1 2 3 5 53 In[27]:= FullForm[%] Out[27]//FullForm= HoldForm[Times[Power[2, 2], Power[3, 2], Power[5, 3], Power[53, 1]]] (* As a bonus, you can reconstruct the original integer at any time: *) In[28]:= ReleaseHold[%] Out[28]= 238500 Dave Wagner Principia Consulting (303) 786-8371 princon at csn.net http://www.csn.net/princon