written by: 东篱下の悠然
思路:
- 遍历2 - n,判断素数
- 每遇到一个素数,就和上一个素数比较,看差是不是等于2,如果等于2计数器加加
- 输出计数器
学习:
- 素数判断函数isprime
代码:
#include<bits/stdc++.h>
using namespace std;
bool isPrime(int a) {
if(a == 1) return 0;
for(int i = 2; i * i <= a; i ++)
if(a % i == 0) return 0;
return 1;
}
int main() {
int n; cin >> n;
int x = 2, y, ans = 0;
for(int i = 2; i <= n; i ++) {
if(isPrime(i)) {
y = i; //保存当前素数
if(y - x == 2) ans ++;
x = y; //更新前一个素数为当前素数
}
}
return cout << ans, 0;
}