On Saturday 22 October 2005 10:34, Peter Owen wrote:

> come up with a factor this morning for the number that had given all the
> incorrect factor messages. Unfortunately I had reported this result to
> the server before I realised what had happened.
>
> M30740051 has a factor: 11175258286831664177
>
> In the circumstances can the result that there is a factor be relied
> upon? Is there a simple way of checking this result?
>
Several years ago I wrote a piece of code which was intended to be 
incorporated in the PrimeNet server to verify reported factors. So the server 
should be checking factors anyway, and not permitting false factors to enter 
the database.

The "simple" way to check if X is a divisor of 2^p-1 is to calculate 2^p 
modulo X - the result should obviously be 1. This can be done in the order of 
log p (to base 2) steps. As X is not very large each step is pretty fast; the 
code I wrote - though deliberately very different from the highly optimised 
code used in prime95/mprime - is capable of checking many thousands of 
factors per second i.e. much faster than results could be submitted to 
PrimeNet for checking.

The reasons the code is different were (a) requirement for PrimeNet code to 
be in pure high-level language for reasons of portability, (b) requirement to 
handle large factors generated by P-1, ECM, etc, (c) take advantage of the 
presentation to PrimeNet being in decimal rather than binary notation, (d) 
make possible detection of systematic errors in reporting factors "found" due 
to possible program bugs.

Though the false factor found should not be logged in the database, manual 
action may be required to restore the exponent to the list awaiting LL 
testing.

Regards
Brian Beesley
_______________________________________________
Prime mailing list
[email protected]
http://hogranch.com/mailman/listinfo/prime

Reply via email to