Problem 10
The sum of the primes below 10 is 2 + 3 + 5 + 7 = 17.
Find the sum of all the primes below two million.
# 求2百万以下所有素数的和。
def is_prime(num):
if num < 2:
return False
for i in range(2,int(num**0.5+1)):
if num % i == 0:
return False
return True
def primes(m,n):
i = m
while i <= n:
if is_prime(i):
yield i
i += 1
def sum_of_primes(primes):
total = 0
for i in primes:
total += i
return total
n = 2000000
sum1 = sum_of_primes(primes(1,n))
print(sum1)
结果:142913828922