用python怎么求【2,n】之间的素数和啊

我只能把所有素数统计出来怎么办啊呜呜呜呜呜呜呜呜


import math


def is_prime(n):
    if n <= 1:
        return False
    for i in range(2, int(math.sqrt(n)) + 1):
        if n % i == 0:
            return False
    return True


def get_result(n):
    list_num = []
    # 计算2到n之间的素数
    for num in range(2, n):
        if is_prime(num):
            list_num.append(num)
    # 计算素数的和
    num_sum = 0
    for num in list_num:
        num_sum += num
    print('2到{}之间的素数分别为:{}'.format(n, list_num))
    print('2到{}之间的素数之和为:{}'.format(n, num_sum))


get_result(20)


结果:

220之间的素数分别为:[2, 3, 5, 7, 11, 13, 17, 19]
220之间的素数之和为:77

你定义一个sum0=0,然后每次有素数就
sum0+=i
( i 就是那个素数)

既然判断素数你已经实现了,你可以用一个列表去接收这个素数,然后用sum()对这个列表求和就ok了啊

def IsPrimeNumber(x):
      pass # 里面是你实现判断x是不是素数的代码

PrimeNumber = []
for i in range(2,n+1):
        if IsPrimeNumber(i) == true :
              PrimeNumber.append(i)
a = sum(PrimeNumber)

(随便写的,缩进没注意)
希望对题主有用