| 123456789101112131415161718192021222324252627282930313233343536 |
- 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
|