码迷,mamicode.com
首页 > 编程语言 > 详细

python-趣味百题3

时间:2017-04-18 18:58:38      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:数组   连续   pen   prime   false   趣味   []   筛法   prim   

等差素数数列:类似7、37、67、97;107、137、167、197这样由素数组成的数列。
素数数列具有项数的限制,一般指素数数列的项数有多少个连续项,最多可以存在多少个连续项
编程找出100以内的等差素数数列
思路:
1.筛法找出100以内所有素数
2.对于素数list内两两组合,构造等差数列a0,a1项
3.计算出a2,查表判断a2是否有素数,是素数则能构造成素数等差序列,计算a3...
def findAllPrime(n):
    pt = [True] * n
    prime = []
    for p in range(2,n):
        if not pt[p]:continue
        prime.append(p)
        for i in range(p * p, n, p):
            pt[i] = False
    return prime,pt
prime, pt = findAllPrime(100)
print prime
for i in range(len(prime)):
    for j in range(i+1,len(prime)):
        a0,a1 = prime[i],prime[j]
        an = a1 + a1-a0
        s =[]
        while an < 100 and pt[an]:
            s.append(an)
            an+=a1-a0
        if s:
            print [a0,a1] + s

python-趣味百题3

标签:数组   连续   pen   prime   false   趣味   []   筛法   prim   

原文地址:http://www.cnblogs.com/lucia8522/p/6728783.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!