当我增加计数器时,它没有跟随迭代

时间:2017-07-19 17:35:51

标签: python algorithm

我正在编写素数的程序,表示为其他连续素数的总和,并且应始终以数字2开头。

    5=2+3
    17=2+3+5+7
    41 =2+3+5+7+11+13

我找到素数的代码:

def prime():
    num=int(input("enter the number"))
    counter=0
    for num in range(2,num+1):
        if(num%2+num%3)!=0:
            counter+1
        else:
            print(prime())
        print(counter)
print(prime())

但是在运行上面的示例时我得到以下输出:

enter the number5
0
0
0
0
None

每当它遍历循环时,它只打印0

1 个答案:

答案 0 :(得分:1)

我认为你的问题很可能是基于

https://math.stackexchange.com/questions/623872/what-is-the-sum-of-the-prime-numbers-up-to-a-prime-number-n

这可以通过使用存储列表来实现

import numpy as np    
num = int(input("Enter a number: "))    
primes = []    
for a in range(2,num):    
  maxInt= int(np.sqrt(a)) + 1    
  for i in range(2,maxInt):   
    if (a%i==0):
      break    
  else:
    primes.append(a)
    if sum(primes) >= num:
        break

print(sum(primes))
print(primes)
Enter a number: 41

41

[2, 3, 5, 7, 11, 13]