繁体   English   中英

在Python中找到素数的无尽重复错误

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM