From 2a535141fbe0c06424283f8a01a7e2c8a1180ed7 Mon Sep 17 00:00:00 2001 From: Reiner Herrmann Date: Fri, 20 Nov 2009 01:26:36 +0100 Subject: further optimization on problem 10 :) --- src/projecteuler/010.py | 21 +++++++++++++++++---- 1 file 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 -- cgit v1.2.3