我只能把所有素数统计出来怎么办啊呜呜呜呜呜呜呜呜
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)
结果:
2到20之间的素数分别为:[2, 3, 5, 7, 11, 13, 17, 19]
2到20之间的素数之和为: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)
(随便写的,缩进没注意)
希望对题主有用