#include<iostream> #include<cmath> #define M 16777220 using namespace std; bool composite[16777220]; int main() { int len=sqrt(M); for(int i=2;i<=len;i++) if(composite[i]==0) for(int j=i*i;j<M;j+=i) composite[j]=1; int n; while(cin>>n) { int count=0; for(int i=2;i<=n/2;i++) if(composite[n-i]==0&&composite[i]==0) count++; cout<<count<<endl; } } // 打素数表 只需要 O(nlogn)的算法 题目地址:http://acm.nefu.edu.cn/test/problemshow.php?problem_id=2