目录
题目描述:
2,3,5,7,11,13,.... 是素数序列。 类似:7,37,67,97,127,157 这样完全由素数组成的等差数列,叫等差素数数列。
上边的数列公差为 30,长度为 6。
2004 年,格林与华人陶哲轩合作证明了:存在任意长度的素数等差数列。 这是数论领域一项惊人的成果!
有这一理论为基础,请你借助手中的计算机,满怀信心地搜索:
长度为 10 的等差素数列,其公差最小值是多少?
等差数列:
如果一个数列从第2项起,每一项与它前一项的差等于同一个常数,这个数列就叫作等差数列,这个常数叫作这个等差数列的公差,记作d.
等差数列的通项公式、求和公式:
素数 :
素数又叫质数。素数,指的是“大于1的整数中,只能被1和这个数本身整除的数”。
素数也可以被等价表述成:“在正整数范围内,大于1并且只有1和自身两个约数的数”。
【注】素数都是正整数;本文中的约数指的都是正约数。
参考代码:
import os
import sys
import math
'''
若公差不是2的倍数,那么长度为10的等差数列里,
必有一个2的倍数。所以,公差必须是2的倍数。同理,
公差必须是3、5、7的倍数,所以求2、3、5、7的最小公倍数即可。
而正因为2、3、5、7都是素数,所以它们的最小公倍数就是它们的积
'''
# 长度为K的等差素数数列,他的公差可以被任何一个小于k的素数整除
num=[1,2,3,5,7]
for i in range(8,1000000):
if i%1==0 and i%2==0 and i%3==0 and i%5==0 and i%7==0:
print(i)
break