Question
The first known prime found to exceed one million digits was discovered in 1999, and is a Mersenne prime of the form 2^{6972593}-1; it contains exactly 2,098,960 digits. Subsequently other Mersenne primes, of the form 2^p-1, have been found which contain more digits.
However, in 2004 there was found a massive non-Mersenne prime which contains 2,357,207 digits: 28433\times2^{7830457}+1.
Find the last ten digits of this prime number.
Commentary
The gmpy
library makes this problem trivial. Using gmpy
, this code
takes about half a second to run. Without gmpy
, well, let’s just say
it takes considerably more than a minute to run.
If you’re dealing with large numbers in Python, I highly recommend gmpy
.
Python
#!/usr/bin/env python
from gmpy2 import mpz
print(str(mpz(28433*2**7830457+1))[-10:])
$ time python3 non-mersenne.py
real 0m0.364s
user 0m0.363s
sys 0m0.000s