diff options
| author | Reiner Herrmann <reiner@reiner-h.de> | 2009-11-20 01:26:36 +0100 |
|---|---|---|
| committer | Reiner Herrmann <reiner@reiner-h.de> | 2014-08-31 20:11:45 +0200 |
| commit | 2a535141fbe0c06424283f8a01a7e2c8a1180ed7 (patch) | |
| tree | 79bba8a5ac8c17b5f9292c6110282a6124dbe4f0 | |
| parent | fc43b85561ede1a1b42af4d5eb14f871b7a33f8f (diff) | |
further optimization on problem 10 :)
| -rw-r--r-- | src/projecteuler/010.py | 21 |
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 |
