Problem 10 "Summe der Primzahlen"
Die Summe der Primzahlen kleiner oder gleich 10 ist 2 + 3 + 5 + 7 = 17. Finden Sie die Summe aller Primzahlen unter 2 Millionen.
Python
n = 2000000
def generate_primes(n):
primes = [2]
for i in range(3, n+1, 2):
for p in primes:
if i % p == 0:
break
else:
primes += [i]
if i % (n // 100) == 1:
print "%d / %d" % (i, n)
return primes
primes = generate_primes(n)
result = sum(primes)
print result
print result == 142913828922
print primes[-5:]
Ergebnis
142913828922
True
[1999891, 1999957, 1999969, 1999979, 1999993]
Es dauert zu lange, deshalb möchte ich es schneller machen.
Recommended Posts