0

我不确定这是否是正确的地方,但我遇到了代码方面的问题。我试图找到第 9 个斐波那契数,这是一个素数,但遇到了问题。首先,我的检查数字是否为素数的函数对于单个素数(2、3、5、7)返回 None 。接下来,我认为我正在寻找的值是 514229,如此处所示但我的程序显示值 17711 作为第 9 个斐波那契素数,这是不正确的。我的代码发布在下面:

def isPrime(n):


    n = abs(int(n))

   if n < 2:
        return False


    elif n == 2:
        return True


    elif not n & 1:
        return False

    else:
        for x in range(3, n/2):
            if n % x == 0:
                return False
            return True


def chkFibonacci():

    num1 = 1
    num2 = 1
    mySum = 0
    ctr = 0
    choice = 'n'

    while (choice != 'y'):
        mySum = num1+num2
        #print mySum
        if (isPrime(mySum)== True):
            ctr = ctr + 1
            print mySum
            if (ctr == 9):
                print mySum
                break
        num1 = num2
        num2 = mySum    

chkFibonacci()
print isPrime(3)

任何帮助表示赞赏。提前致谢!!

4

1 回答 1

5

return Trueelse分支的isPrime似乎缩进太多了。

于 2013-03-05T23:51:06.807 回答