解题思路
1.枚举[1:1000]区间的素数,统计素数对时需要去重(定义第一个数小于等于第二个数即可);
代码
#include <bits/stdc++.h> using namespace std; bool check(int t){ //校验i是否为质数 i > 1 if(t < 4) return true; for(int i = 2; i * i <= t; i++){ if(t % i == 0) return false; } return true; } int main(){ int x; cin >> x; unordered_set<int> f; //保存[1:1000]区间范围的质数 int cnt = 0; for(int i = 2; i < 1000; i++){ if(check(i)) f.insert(i); } for(auto& val : f){ if(f.count(x - val) && 2 * val <= x) cnt++; //定义第一个数小于等于第二个数 去重 } cout << cnt; return 0; }