有人可以检查我的代码.我在循环中提取素数时遇到问题.如果用户输入5,则输出应为:2 3 5 13 89,如果用户输入7,则输出应为2 3 5 13 89 233 1597等,
countPrime= int(0)
endNum= int(0)
a0= int(0)
a1= int(1)
checkPrime= False
valueN= int(input("Enter the value of N: \n"))
while (countPrime < valueN):
endNum= a0 + a1
a0= a1
a1= endNum
for i in range(2, endNum+1): # prime check
if (not endNum % i ==0 and endNum > 2): #
checkPrime= True #
if(checkPrime==True):
countPrime+=1
print(endNum, end=" ")
解决方法:
while循环不缩进.
如果是,它将只计算第N个Fibonacci数.
在for循环中,看起来你设置checkPrime = True,如果这个数字是不可分割的,那么情况总是如此.