我正在尝试编写一个函数,该函数应该接受梅森数并使用 Lucas-Lehmer 素数测试返回它是否是素数。我正在尝试返回 Lucas-Lehmer 序列中生成的最后一个数字,如果它是质数,它应该是 0
我编写了以下函数来执行上述操作
def lucas_lehmer_modified(p):
M=2**p-1
for i in range (0,p-1):
if i == 0:
x = 4
else :
x = (prev**2-2)%(M)
prev=x
return x
我的问题是此代码适用于小数,例如127
但不适用于大数,2305843009213693951
例如524287
. 我的 Python Jupyter 笔记本挂断了。关于如何获得一个函数的任何建议,该函数将梅森素数作为输入并使用 Lucas Lehmer 测试返回它是否是素数。我需要让它至少工作2^65-1