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