等差素数数列:类似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趣味题_python-趣味百题3