0

我编写了这个程序,该程序应该打印出 100 到 200 之间的质数。(我在此过程中添加了一些额外的打印命令,这样我就可以看到它到达了哪里。)谁能给我一个关于它为什么停止的提示在 137,而脚本正在检查这个数字?

谢谢!

这是脚本:

import math
import sys
index=100.0
checker=2.0

def start():
    print("A")
    global index
    while index<=200.0:
        fu1()
    if index>200.0:
        end()

def fu1():
    print ("B")
    print ("checker", checker)
    print ("index", index)
    global index
    global checker
    varb=index/checker
    varb2=round(index/checker, 0)
    if checker>=index:
        print ("C")
        print(index)
        index=index+1.0
        checker=2.0
        start()
    if varb2==varb:
        print("D")
        checker=2.0
        index=index+1.0
        start()
    checker=checker+1.0
    fu1()


def end():
    print("E")
    print("ENDED")
    sys.exit()

start()
4

1 回答 1

2

您的程序已达到递归调用数量的限制(我认为在 python 中默认为 1000)......您可以通过使用此命令来增加它sys.setrecursionlimit(5000)

于 2012-06-16T18:50:08.487 回答