Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2002
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2002

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: The prime factors of n.

  • To: mathgroup at smc.vnet.net
  • Subject: [mg32733] Re: [mg32673] The prime factors of n.
  • From: Richard Palmer <mapsinc at bellatlantic.net>
  • Date: Thu, 7 Feb 2002 05:10:48 -0500 (EST)
  • Sender: owner-wri-mathgroup at wolfram.com

on 2/6/02 3:41 AM, Robert G. Wilson v at rgwv at kspaint.com wrote:

> Hello all,
> 
>       I wish to receive a list of prime factors of n not in the form
> returned by FactorInteger. Instead I want only the primes the number of
> times they appear. As an example I will use 72. FactorInteger[72] gives
> { {2,3}, {3,2} }. I wish the list would read { 2, 2, 2, 3, 3 }. Is the
> following the best that I can do? f[n_Integer] := Module[{a =
> FactorInteger[n], b = {}}, While[Length[a] > 0, Do[b = Append[b, a[[1,
> 1]]], {a[[1, 2]]}]; a = Drop[a, 1]]; b] .
> 
> See
> http://www.research.att.com/cgi-bin/access.cgi/as/njas/sequences/eisA.cgi?Anum
> =037276
> 
> Sincerely yours,
> 
> Robert G. "Bob" Wilson, V
> 
> 
Hi Bob,

Try the following.  Define the function f.  Obviously you can call it
anything you want, and make the proper substitution later.

> f[{a_, b_}] := Table[a, {b}]

This makes a list of b a's where f[{3,2}] would produce {3,3}.


Now map the function f to the output from factor integer and flatten the
result.

> Flatten[f /@ {{2, 3}, {3, 2}}]

This is not the most efficient way to do this because you are using tables
and flatten, but it will be plenty fast for your work.

Richard Palmer



  • Prev by Date: Re: Import variable and data
  • Next by Date: Re: Import variable and data
  • Previous by thread: RE: The prime factors of n.
  • Next by thread: RE: The prime factors of n.