If all you want to do is factor integers, there are programs to do
this, and a bunch of other number-theoretic calculations, and usually not
so much else. Shoup's NTL and the MPFR project come to mind.
While adding better integer factoring programs to Maxima is
harmless, it is not the major thrust of Maxima. (My own approach
to this is to have Lisp just call NTL or MPFR.) I don't know what
ifactor does. I think the plausible heuristics include a quick search
for small factors followed by an attempt to prove the number is
prime. And then something else that is the subject of much
research.
See
en.wikipedia.org/wiki/Integer_factorization
----- Original Message -----
From: "Jim FitzSimons" <cherry at getnet.net>
To: <Maxima at math.utexas.edu>
Sent: Tuesday, June 13, 2006 7:59 AM
Subject: RE: [Maxima] factor(2^101-1)=???
> (%i1) :lisp (compile-file "ifactor.lisp");
>
> The source file ifactor.lisp is not found.
> NIL
> (%i1)
> Where do I put ifactor.lisp?
> Regards, Jim FitzSimons
>
>
> -----Original Message-----
> From: maxima-admin at math.utexas.edu [mailto:maxima-admin at math.utexas.edu]
> On
> Behalf Of Robert Dodier
> Sent: Monday, June 12, 2006 9:34 PM
> To: Roman
> Cc: Maxima at math.utexas.edu
> Subject: Re: [Maxima] factor(2^101-1)=???
>
> Hi Roman,
>
>> I tryed to factorize 2^101-1, but Maxima can not do this.
>
> The integer factorization code was recently improved.
> The changes will be in the next release of Maxima.
> In the meantime, you can download ifactor.lisp from
>
> http://maxima.cvs.sourceforge.net/*checkout*/maxima/maxima/src/ifactor.lisp
>
> and then load it into Maxima (compiling it first) by
>
> :lisp (compile-file "ifactor.lisp")
> :lisp (load "ifactor")
>
> factor (2^101 - 1);
> => 7432339208719 341117531003194129
>
> new function: ifactors (2^101 - 1);
> => [[7432339208719, 1], [341117531003194129, 1]]
>
> FWIW
> Robert Dodier
>
>
> _______________________________________________
> Maxima mailing list
> Maxima at math.utexas.edu
> http://www.math.utexas.edu/mailman/listinfo/maxima
>