思路:
1、因为找的是长度为10,且公差最小的等差素数列,直接用枚举即可。
2、枚举用三重循环,第一重枚举首项,第二重枚举公差,第三重因为首项算一个,所以枚举九个等差素数。
代码:
#include<iostream>
using namespace std;
int sushu(int n)//判断是否为素数
{
for (int i = 2; i < n / 2; i++)
if (n % i == 0)//不是素数
return 0;
return 1;
}
int main()
{
int flag = 1;//计数
for (int i = 2; i < 10000; i++)//枚举首项
{
if (sushu(i))
{
for (int j = 2; j < 1000; j++)//枚举公差
{
for (int k = 1; k < 10; k++)//本身算一个,再找九个数
{
if (sushu(i + j * k))
flag++;
else
{
flag = 1;
break;
}
}
if (flag == 10)
{
cout << j;
break;
}
}
}
}
}