ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Sonnet Primes in Python

Sonnet Primes in Python

原创 Linux操作系统 作者:jieforest 时间:2013-01-11 09:06:35 0 删除 编辑
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.

CODE:

from sympy.ntheory import isprime
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)

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/301743/viewspace-752501/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-04-23

  • 博文量
    442
  • 访问量
    523609