python – 在Fibonacci序列中输出素数

有人可以检查我的代码.我在循环中提取素数时遇到问题.如果用户输入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,如果这个数字是不可分割的,那么情况总是如此.

上一篇:如何优雅的计算Fibonacci数列


下一篇:java – 动态编程实现不好或HashMap慢?