In [1]:
from __future__ import division
import numpy as np
import time

start = time.time()

N = 2000000
sieve = np.array([True]*N)
primes = [2]
for test_prime in xrange(3,N,2):
    if sieve[test_prime]:
        multiples = test_prime*np.arange(int(np.ceil(N/test_prime)))
        sieve[multiples] = False
        primes.append(test_prime)

print "Answer:{}".format( sum(primes) )
print "Elapsed time:{0} seconds".format(time.time()-start)


Answer:142913828922
Elapsed time:1.20955300331 seconds

In [ ]: