上QQ阅读APP看书,第一时间看更新
2.7 素数等差数列
素数等差数列是素数世家中不可或缺的一员。探索素数等差数列是一项有趣而又艰辛的工作。
在小于10的素数中,显然有3,5,7组成的3项等差数列。
而在30以内的素数中,有5,11,17,23,29这5个素数组成公差为6的等差数列。
你知道在1000以内的素数,成等差数列的素数最多有多少个吗?
在指定区间[x,y]如果存在成等差数列的n(n≥3)个素数,试求n的最大值,并输出一个最多项数的等差素数列。
1. 设计要点
(1)标注素数。
通过m循环枚举指定区间[x,y]内的奇数,应用试商判别法探求素数,设置p数组并通过p[k]=m标注奇数m为区间内第k个素数。
同时,设置q数组并通过q[m-x]=1标注与区间起始数x相距m-x的素数m。
(2)扫描等差数列。
设置i(1~k-3)循环枚举等差数列首项p[i];设置j(4~m/2,递增2)枚举等差数列的公差。通过这二重循环扫描项数为s的等差数列。
(3)比较求取项数最大值。
项数s与n比较求得等差素数列的项数最大值n,并记录首项p[r]与公差d。
最后输出项数最大值为n,首项为p[r],公差为d的等差素数列。
2. 搜索等差素数列程序设计
3. 程序运行示例与说明
两个数组p,q的设置,为扫描素数等差数列提供了方便。
如果指定区间内存在有多个最长素数等差数列,那么这里输出的是其中最小的一个。
前面证明了素数有无限多个,孪生素数对也很可能无限多对。那么,素数等差数列的项数是否也可达无限多项?如果素数等差数列的项数不可能无限,那么素数等差数列的项数最多为多少项?
这些尚无确切的结论,还有待进一步研讨探索。笔者猜测,素数等差数列的项数不可能无限,甚至不会达到3位数。