Parcourir la source

Added some prime number util functions

Taddeus Kroes il y a 13 ans
Parent
commit
af633381fa
1 fichiers modifiés avec 36 ajouts et 0 suppressions
  1. 36 0
      primes.py

+ 36 - 0
primes.py

@@ -0,0 +1,36 @@
+def is_prime(n):
+    if n == 2:
+        return True
+
+    if n < 2 or not n & 1:
+        return False
+
+    for i in xrange(3, int(n ** .5) + 1, 2):
+        if not n % i:
+            return False
+
+    return True
+
+def primes_until(n):
+    """ Sieve of Eratosthenes """
+    lst = [False] * n
+    i = 2
+
+    while i < n:
+        if not lst[i]:
+            yield i
+
+            for j in xrange(i, n, i):
+                lst[j] = True
+
+        i += 1
+
+def nprimes(n):
+    a = 2
+
+    while n:
+        if is_prime(a):
+            yield a
+            n -= 1
+
+        a += 1