これが質問するのに適切な場所かどうかはわかりませんが、コードに関して壁にぶつかりました。素数である 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)
どんな助けでも大歓迎です。前もって感謝します!!