For smaller numbers, verification with independent code is easy; one could use Pari/GP, and use modular arithmetic explicitly.
Let's take this small factor for example:
5 3 117740 32039 117743 2012
This line from GFNfacs.html means 32039*2^117743+1 is a Factor of xGF(117740,5,3), so let's check that:
Mod(5,32039*2^117743+1)^(2^117740)+Mod(3,32039*2^117743+1)^(2^117740)==0
After a while Pari will report "1" (i.e. "true").
A faster way would be
Mod(5/3,32039*2^117743+1)^(2^117740)+1==0
(Note that modular 5/3 will be turned into a single modular residue first and exponentiated next -- which is twice as fast.)
Pari uses GMPlib, but it is possible to code a short program to the same effect in plain C with GMP.
For larger factors, you have to use GWNUM or maybe (for independence) you can code something on a GPU using cuFFT (or similar). For the former, you can run the same command line but add -a1 or -a2 (or even higher): different FFT sizes will be used and it is less likely that a hardware error will happen in the same way (if there was an error). |