10以下的质数的和是2 + 3 + 5 + 7 = 17.
找出两百万以下所有质数的和。
def get_primes(n):
"""
获取n以下所有质数
从2开始,由小到大,依次划去当前数的倍数
"""
n_set = set(range(3, n, 2))
n_set.add(2)
for i in range(3, n, 2):
if i in n_set:
i_set = set(range(i * 2, n, i))
n_set -= i_set
return n_set
print(sum(get_primes(2 * 10 ** 6)))