diff options
| author | Reiner Herrmann <reiner@reiner-h.de> | 2010-03-19 20:18:47 +0100 |
|---|---|---|
| committer | Reiner Herrmann <reiner@reiner-h.de> | 2014-08-31 20:11:45 +0200 |
| commit | acc8a7677ff573cf2e3b617f717034626cba1da9 (patch) | |
| tree | cc180c1756276dce9835301027effc3790c1ddd9 | |
| parent | 761080c77328327fa77a13008f4d41b7a58d4f53 (diff) | |
added module for common operations (like prime sieve)
| -rw-r--r-- | src/projecteuler/common.py | 32 |
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 + |
