题目:https://pintia.cn/problem-sets/994805260223102976/problems/994805317546655744

一边过,就是有一个边界条件没想到,题目说了不超过n,说明包括n,以后审题一定要仔细

代码

  1. #include<algorithm>
  2. #include<iostream>
  3. #include<vector>
  4. using namespace std;
  5. const int maxn = 100010;
  6. vector<bool> prime(maxn, false);
  7. void get_prime(int n){
  8. for(int i = 2; i <= n; i++){
  9. if(prime[i] == false){
  10. for(int j = 2 * i; j <= n; j += i){
  11. prime[j] = true;
  12. }
  13. }
  14. }
  15. }
  16. int main(){
  17. int n, count = 0;
  18. scanf("%d",&n);
  19. get_prime(n);
  20. for(int i = 4; i <= n; i++){
  21. if(prime[i] == false && prime[i - 2] == false) count++;
  22. }
  23. printf("%d",count);
  24. }