1、因为找的是长度为10,且公差最小的等差素数列,直接用枚举即可。
2、枚举用三重循环,第一重枚举首项,第二重枚举公差,第三重因为首项算一个,所以枚举九个等差素数。
- #include
- 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;
- }
- }
- }
- }
- }