计蒜客练习题:蒜头君的猜想(哥德巴赫猜想)
蒜头君的猜想(哥德巴赫猜想)
AC代码:
#include<iostream>
using namespace std;
int n;
int is_prime[8000010];
//素数筛选法
int prim(){
for (int i = 2; i <= n; ++i) {
is_prime[i] = 1;
}
for (int i = 2; i * i <= n; ++i) {
if (is_prime[i]) {
for (int j = i * i; j <= n; j +=i) {
is_prime[j] = 0;
}
}
}
}
int main(){
cin>>n;
prim();
int ans = 0;
for(int i=2;i<=n;i++){
//查询素数表:x+y=n 等价于 查询n-i是否是素数
if(is_prime[i] && is_prime[n-i] && n-i>=i){
ans++;
}
}
cout<<ans<<endl;
}