我输入一个 Python 程序来查找第 n 个素数。
def prime(a, b = 2):
def prime(a, b=2):
def gcd(x, y):
if (x % y == 0):
return y
else:
return gcd(x, y - 1)
if (gcd(b, b-1) > 1):
return prime(a, b+1)
elif (a - 1 > 0):
return prime(a-1, b+1)
else: return b
它成功地将第 94 个素数输出为 prime(94) --> 491。
但是,当我计算第 95 个素数时,我得到了无休止的重复错误输出。为什么会发生这种情况?感谢您的回答。
最佳答案
94 是 python 的最大递归深度
。您可以增加最大递归深度,也可以使用迭代方法而不是当前的递归方法。需要明确的是,递归是指从函数内部调用函数。要增加最大递归深度:
import sys
sys.setrecursionlimit(2000)
您应该能够自己想出一个迭代版本。希望有帮助!
关于python - 在Python中查找素数时出现无尽的重复错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33872613/