Sonnet Primes in Python
A while back I wrote about sonnet primes, primes of the form ababcdcdefefgg where the letters a through g represent digits and a is not zero. The name comes from the rhyme scheme of an English (Shakespearean) sonnet.
In the original post I gave Mathematica code to find all sonnet primes. This post shows how to do it in Python.
from sympy.ntheory import isprime from itertools import permutations def number(t): # turn a tuple into a number return 10100000000000*t + 1010000000000*t \ + 1010000000*t + 101000000*t \ + 101000*t + 10100*t \ + 11*t sonnet_numbers = (number(t) for t in permutations(range(10), 7) if t != 0) sonnet_primes = filter(isprime, sonnet_numbers)
(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)