思路:
注意审题,题目中的等差素数列指公差相同且每一个元素都是素数的数列,并不是说是所有素数中一段连续且插值相同的数列,它可以是离散的。
因此,只需要暴力的遍历每一个素数,并找以其开头的所有可能等差数列,再判断数列元素是否都为素数,最终输出公差即可。
代码:
cpp
#include <bits/stdc++.h>
using namespace std;
bool f(int n) {
for (int i = 2; i < n; i++) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
int main() {
for (int i = 2; i <= 10000; i++) {
for (int j = 2; j <= 10000; j++) {
if (f(i) && f(i + j) && f(i + 2 * j) && f(i + 3 * j) && f(i + 4 * j) && f(i + 5 * j) && f(i + 6 * j) && f(i + 7 * j) && f(i + 8 * j) && f(i + 9 * j)) {
cout << j;
return 0;
}
}
}
return 0;
}
**知识点:**暴力,逆向思维