[英]Endless Repeating Error in finding Prime Number in Python
我键入一个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的maximum recursion depth
。 您可以增加最大递归深度,也可以使用一种迭代方法,而不是当前的递归方法。 需要明确的是,递归是指您从自身内部调用函数时的情况。 要增加最大递归深度:
import sys
sys.setrecursionlimit(2000)
您应该可以自己提出一个迭代版本。 希望有帮助!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.