题目注意点
- 题目给出的数如果是素数也算作计算的对数内
- 每一对素数可以相互有重复的数字
实现
用埃氏筛法得到到n的素数表即可
#include <stdio.h>
const int maxn = 100010;
int prime[maxn], pNum = 0;
bool p[maxn] = {0};
void findPrime(int n) {
for (int i = 2; i <= n; i++) {
if (p[i] == false) {
prime[pNum++] = i;
for (int j = i + i; j <= n; j += i) {
p[j] = true;
}
}
}
}
int main() {
int n, cnt = 0;
scanf("%d", &n);
findPrime(n);
for (int i = 1; i < pNum; i++) {
if (prime[i] - prime[i - 1] == 2) {
cnt++;
}
}
printf("%d\n", cnt);
return 0;
}