Используйте сито Эратосфена:
$ python
Python 2.7.13 (default, Mar 13 2017, 20:56:15)
[GCC 5.4.0] on cygwin
Type "help", "copyright", "credits" or "license" for more information.
>>> def sumPrimes(n):
... i, p, ps, m, sum = 0, 3, [2], n // 2, 2
... sieve = [True] * m
... while p <= n:
... if sieve[i]:
... sum += p
... for j in range((p*p-3)/2, m, p):
... sieve[j] = False
... i, p = i+1, p+2
... return sum
...
>>> from time import time
>>> start = time(); print sumPrimes(2000000); print time() - start
142913828922
0.262000083923
Около четверти секунды на моей машине.