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