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)
In [ ]: