+ """Yield prime numbers using the Sieve of Eratosthenes

+ From: http://macdevcenter.com/pub/a/python/excerpt/pythonckbk_chap1/index1.html?page=2

+ Credit: David Eppstein, Tim Peters, Alex Martelli, Wim Stolker, Kazuo

+ Moriwaka, Hallvard Furuseth, Pierre Denis, Tobias Klausmann, David Lees,

+ D = {} # map each composite integer to its first-found prime factor

+ for q in itertools.count(2):

+ # q not a key in D, so q is prime, therefore, yield it.

+ # Mark q squared as composite with q as first-found prime factor.

+ # Find the smallest multiple of p which isn't yet known to be

+ # composite. Already known composites will be eliminated in turn,

+ # and their stored prime factors will be advanced at that time.

+ # We know q is a composite multiple of p, so start at p + q.

+ # Mark this previously unknown composite with p as a prime factor.

+ """Yield pairs of twin primes"""