""" Prime number generator I found it quite simple to implement this generator with the 'any' function It is certainly not the most optimized algorithm. Primes list will only grow in the function though. """ import itertools def primes(): """Simple prime numbers generator >>> [prime for prime, index in zip(primes(), range(10))] [1, 2, 3, 5, 7, 11, 13, 17, 19, 23] """ yield 1 primes = [] for n in itertools.count(2): if not any(n % p == 0 for p in primes): # No divisor found among previous primes yield n primes.append(n) if __name__ == "__main__": import doctest doctest.testmod()