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 itertools import permutations
def number(t):
# turn a tuple into a number
return 10100000000000*t[0] + 1010000000000*t[1] \
+ 1010000000*t[2] + 101000000*t[3] \
+ 101000*t[4] + 10100*t[5] \
+ 11*t[6]
sonnet_numbers = (number(t) for t in
permutations(range(10), 7) if t[0] != 0)
sonnet_primes = filter(isprime, sonnet_numbers)
In the original post I gave Mathematica code to find all sonnet primes. This post shows how to do it in Python.
CODE:
from sympy.ntheory import isprimefrom itertools import permutations
def number(t):
# turn a tuple into a number
return 10100000000000*t[0] + 1010000000000*t[1] \
+ 1010000000*t[2] + 101000000*t[3] \
+ 101000*t[4] + 10100*t[5] \
+ 11*t[6]
sonnet_numbers = (number(t) for t in
permutations(range(10), 7) if t[0] != 0)
sonnet_primes = filter(isprime, sonnet_numbers)
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/301743/viewspace-752501/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/301743/viewspace-752501/