summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorReiner Herrmann <reiner@reiner-h.de>2010-03-19 20:18:47 +0100
committerReiner Herrmann <reiner@reiner-h.de>2014-08-31 20:11:45 +0200
commitacc8a7677ff573cf2e3b617f717034626cba1da9 (patch)
treecc180c1756276dce9835301027effc3790c1ddd9
parent761080c77328327fa77a13008f4d41b7a58d4f53 (diff)
added module for common operations (like prime sieve)
-rw-r--r--src/projecteuler/common.py32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/projecteuler/common.py b/src/projecteuler/common.py
new file mode 100644
index 0000000..dafed9c
--- /dev/null
+++ b/src/projecteuler/common.py
@@ -0,0 +1,32 @@
+
+class sieve:
+ limit = 100
+
+ def __init__(self, limit):
+ self.limit = limit
+ self.number_list = [False] + [True]*(self.limit-1)
+ self.list_len = len(self.number_list)
+
+ def next_prime(self, i):
+ x = i+1
+ while(x <= self.list_len):
+ if self.number_list[x-1] == True:
+ break
+ x += 1
+ return x
+
+ def primes(self):
+ i = 2
+ while(i*i <= self.list_len):
+ x = i*i
+ while(x <= self.list_len):
+ self.number_list[x-1] = False
+ x += i
+ i = self.next_prime(i)
+
+ primeset = set()
+ for i in xrange(1, self.limit+1):
+ if self.number_list[i-1]:
+ primeset.add(i)
+ return primeset
+