nefu 2 http://acm.nefu.edu.cn/test/problemshow.php?problem_id=2
#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(n^1.5)的算法