簡體   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