|
2022-01-20 10:26:00
Lucas-Lehmer Test 判别 10000 以内奇素数产生的梅森素数
2^3-1 is prime
2^5-1 is prime
2^7-1 is prime
2^13-1 is prime
2^17-1 is prime
2^19-1 is prime
2^31-1 is prime
2^61-1 is prime
2^89-1 is prime
2^107-1 is prime
2^127-1 is prime
2^521-1 is prime
2^607-1 is prime
2^1279-1 is prime
2^2203-1 is prime
2^2281-1 is prime
2^3217-1 is prime
2^4253-1 is prime
2^4423-1 is prime
2^9689-1 is prime
2^9941-1 is prime
用时 469.1401333808899 秒
def LucasLehmerTest(p=61):
m, q = 2 ** p - 1, 4
for i in range(p - 2):
q = pow(q, 2, m) - 2
return not q
if __name__ == '__main__':
import datetime as dt, time as tm
print(dt.datetime.now().strftime("%F %T"))
start = tm.time()
print('Lucas-Lehmer Test 判别 10000 以内奇素数产生的梅森素数')
Primes = prime_sieve(10000)
for p in Primes:
if LucasLehmerTest(p):
print(f'2^{p}-1 is prime')
print(f"用时 {tm.time() - start} 秒") |
|