On 14 Jul 99, at 7:59, Paul Leyland wrote, in reply to
my earlier message:
> > Actually Fermat's Method is extraordinarily efficient at finding a
> > factorization n = a * b when (a - b) is small. It's also easy to
> > code, needs very little storage and (once initialized) requires only
> > relatively low-precision arithmetic, therefore making the attempt
> > fast (per iteration).
>
> All of this is completely true, as long as the concept "small" is well
> understood.
>
> Fermat's method is excellent if (a-b) is about sqrt(a) or
> sqrt(sqrt(N)). If it is much larger than this, Fermat's method is
> hopelessly slow. In a "typical case", Fermat's method is slower than
> trial division!
I think you mean we want (a-b) to be _much_ smaller than sqrt(a) if
Fermat's method is going to succeed reasonably quickly. However, ...
Suppose we take a number which is proving troublesome to factorize,
e.g. 2^727-1. Factors of this number are going to be of the form
1454k+1. The number is 219 decimal digits long; we are fairly sure,
from work expended in ECM, that there are no factors much less than
45 digits long.
Suppose we multiply 2^727-1 by 100!. The reason for doing this is
that this just about guarantees that there is some combination of
factors a, b such that (a-b) << sqrt(a). Therefore we should be able
to use Fermat's method (or anything else which might be better) and
get a factorization in a reasonable time. We also know that none the
factors of 2^727-1 are < 100, so we can then reduce the factors found
by dividing out of them all the primes < 100. What we're left with
must surely be the factorization of 2^727-1 (though the remaining
factors might possibly still be composite).
Now I'm not saying that the effort involved is trivial - I'm sure a
run length of some hours, days or weeks would be neccessary. Also,
I'd be very surprised indeed if I'm the first to suggest a trick like
this, but, is it worth while starting to code this method? The point
is that it's going to take a fair number of CPU years to complete ECM
testing on 2^727-1 to the point where we're reasonably sure that
there are no factors < 10^50; for all we know, there might be only 2
factors each over 100 digits long, in which case ECM is almost
certain to fail, unless _much_ faster hardware comes along.
Regards
Brian Beesley
________________________________________________________________
Unsubscribe & list info -- http://www.scruz.net/~luke/signup.htm