小于10的素数中有3、5、7组成等差数列,在30以内的素数中,有5、11、17、23、29组成等差数列;
在指定区间[x,y]如果存在成等差数列的n(n>=3)个素数,试求n的最大值,并输出一个最多项数的等差素数列;
1.设计要点:
(1)、标注素数;
通过m循环枚举指定区间[x,y]内的奇数,应用试商法探求素数,设置a数组并通过a[m]=1标注奇数m为素数;
(2)、扫描等差数列;
设置d循环(2~(y-x)/2,递增2)枚举公差d,k循环(x~y-2*d)枚举首项k;通过这二重循环扫描首项为k,公差为d的等差数列;
(3)、探求等差素数列的项数;
设置j是首项为k,公差为d的等差数列的项,通过条件为“a[j]==1”的条件循环探求等差素数列的项数s;
(4)、比较求取项数最大值;
项数s与max比较求得等差素数列的项数最大值max,并记录首项k1与公差d1;
最后输出项数最大值max,输出最大项数等差素数列k1+j*d1(j=0,1,……,max-1);
2.等差素数列程序设计:
#include<stdio.h>
#include<math.h>
int mai