我有一个创建素数的代码,将它们转换为梅森数,然后素数再次检查它是否是梅森素数。它工作得很好,除了它停在 2^31 - 1... (2147483647)
我正在使用一个产生无限数字的函数:
def infinity():
i = 0
while True:
i += 1
yield i
Run Code Online (Sandbox Code Playgroud)
然后将其更改为末尾while True带有 a 的循环i += 1,但仍然不起作用。
def isPrime(i):
isprime = True
for j in range(2, int(math.sqrt(i) + 1)):
if i % j == 0:
return False
if isprime and i!=1:
return True
i=1
while True:
isprime = True
for j in range(2, int(math.sqrt(i) + 1)):
if i % j == 0:
isprime = False
break
if isprime and …Run Code Online (Sandbox Code Playgroud)