0

これが質問するのに適切な場所かどうかはわかりませんが、コードに関して壁にぶつかりました。素数である 9 番目のフィボナッチ数を見つけようとしていますが、問題があります。まず、数値が素数であるかどうかを確認する関数は、1 桁の素数 (2,3,5,7) に対して None を返します。次に、私が探している値はここに示されているように 514229 だと思いますが、私のプログラムでは 9 番目のフィボナッチ素数として 17711 という値が表示されますが、これは正しくありません。私のコードは以下に掲載されています:

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 に答える