Project Euler 10解题报告

题目:

The sum of the primes below 10 is 2 + 3 + 5 + 7 = 17.

Find the sum of all the primes below two million.

中文题目:

10以下的质数的和是2 + 3 + 5 + 7 = 17.

找出两百万以下所有质数的和。

解题分析: 前面有个题目已经有了好的处理素数的方式,这次直接用前面的代码来实现。

limit = 1000000 
arr = [True] * limit
def sieve(x): 
    global arr,limit 
    for i in range(x*2,limit,x):
        arr[i] = False 
map(sieve, range(2,limit**1/2))
primes = []
for i in range(2,limit):
    if arr[i]: 
        primes.append(i) 
sum = 0 
for p in primes: 
    sum += p 
print sum