summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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
+