Re: ExponentFunction
- To: mathgroup at smc.vnet.net
- Subject: [mg24511] Re: [mg24451] ExponentFunction
- From: "Atul Sharma" <atulksharma at yahoo.com>
- Date: Thu, 20 Jul 2000 03:01:48 -0400 (EDT)
- References: <8l3fqv$l03@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Stan Wagon (Mathematica in Action, Telos 1997) defined a nice function which
outputs the results of FactorInteger in prime factor-exponent form.
Modifying it slightly to include the dot separator gives a pretty output:
displayFactorInteger::usage =
"displayFactorInteger[f] displays the list f, of the form returned by \
FactorInteger, as a list of individual prime factors with superscripted \
exponents separated by a dot." ;
displayFactorInteger[l_] := SequenceForm @@
( (DisplayForm[RowBox[{#1, "."}]] & ) /@
(MapThread[
If[#2 == 1,
If[Head[#1] === Complex,
StringJoin["(", ToString[#1], ")"],
ToString at #1], SuperscriptBox[ToString at #1, #2]] &,
Transpose[l]]));
In[2]:=FactorInteger[100!] // displayFactorInteger
Atul
BobHanlon at aol.com wrote in message <8l3fqv$l03 at smc.vnet.net>...
>
>In a message dated 7/18/2000 2:03:01 AM, greg at mira.net writes:
>
>>I just thought of another quick question I'd like to throw in while I'm
>>in the newsreader: I'm having trouble composing an elegant functional way
>>of
>>converting the results of FactorInteger into a form where all the factors
>>(with multiples) are strung together dot separated (example
>>2.2.2.3.3.43.1181). Any ideas?
>
>x = 2*2*2*3*3*43*1181;
>
>Dot @@ Flatten[Table[#[[1]], {#[[2]]}] & /@ FactorInteger[x]]
>
>2 . 2 . 2 . 3 . 3 . 43 . 1181
>
>Times @@ % == x
>
>True
>
>
>Bob Hanlon
>