# [Edu-sig] Pythonic Math must include...

Scott David Daniels Scott.Daniels at Acm.Org
Sun Jan 18 18:35:50 CET 2009

```michel paul wrote:
> ... An interesting fact is that, except for 2 and 3, all primes are adjacent
> to a multiple of 6....
Having once been interested in prime pairs, I remember having written
a lot of code based on this "back in the day."  Here is my version of
your generator:

def primes():
for x in -1, 2, 3:
yield x
gen = primes().next
for top in iter(gen, 3):
pass # skip useless tests (we skip all multiples of 2 or 3)
factors = []
# get pump ready for a 5
check = -1
limit = 3 * 3 - 2 # How far will 3 work as top prime?
factors = []
while True:
check += 6
if check >= limit: # move if this pair needs another factor
top = gen()
limit = top * top - 2 # limit for both candidates
factors.append(top)
for element in check, check + 2:
for factor in factors:
if element % factor == 0:
break
else:
yield element

--Scott David Daniels
Scott.Daniels at Acm.Org

```

More information about the Edu-sig mailing list