summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorReiner Herrmann <reiner@reiner-h.de>2009-11-20 01:26:36 +0100
committerReiner Herrmann <reiner@reiner-h.de>2014-08-31 20:11:45 +0200
commit2a535141fbe0c06424283f8a01a7e2c8a1180ed7 (patch)
tree79bba8a5ac8c17b5f9292c6110282a6124dbe4f0
parentfc43b85561ede1a1b42af4d5eb14f871b7a33f8f (diff)
further optimization on problem 10 :)
-rw-r--r--src/projecteuler/010.py21
1 files changed, 17 insertions, 4 deletions
diff --git a/src/projecteuler/010.py b/src/projecteuler/010.py
index 475ade8..691c7a5 100644
--- a/src/projecteuler/010.py
+++ b/src/projecteuler/010.py
@@ -1,14 +1,27 @@
-import math
-
limit = 2000000
number_list = [False] + [True]*(limit-1)
+list_len = len(number_list)
+
+def next_prime(i):
+ global number_list
+ global list_len
+ x = i+1
+ while(x <= list_len):
+ if number_list[x-1] == True:
+ break
+ x += 1
+ return x
-for i in xrange(2, int(math.sqrt(limit+1))):
+i = 2
+
+while(i*i <= list_len):
x = i*i
- while(x <= len(number_list)):
+ while(x <= list_len):
number_list[x-1] = False
x += i
+ i = next_prime(i)
+
sum = 0