题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
2,3,5,7,11,13,.... 是素数序列。 类似:7,37,67,97,127,157 这样完全由素数组成的等差数列,叫等差素数数列。
上边的数列公差为 30,长度为 6。
2004 年,格林与华人陶哲轩合作证明了:存在任意长度的素数等差数列。 这是数论领域一项惊人的成果!
有这一理论为基础,请你借助手中的计算机,满怀信心地搜索:
长度为 10 的等差素数列,其公差最小值是多少?
运行限制
- 最大运行时间:1s
- 最大运行内存: 128M
非常妙的枚举方法,只要够十个数都是素数就输出
代码如下
#include<iostream>
using namespace std;
bool issushu(int num)
{
for (int i = 2; i < num; i++)
{
if (num % i == 0)
{
return false;
}
}
return true;
}
int main(){
for(int i = 1 ; i < 10000 ; i ++)
{
if (issushu(i))
{
for (int d = 2; d < 1000; d ++)
{
int count = 1;
for (int j = 1; j < 10; j ++)
{
int temp = i + d * j;
if (issushu(temp))
{
count++;
}
if (count == 10)
{
cout << d << endl;
return 0;
}
}
}
}
}
}