水题
#include <iostream> #include <stdio.h> #include <string.h> using namespace std; const int maxx=100000; bool prime[maxx+10]; void getprime() { memset(prime,1,sizeof(prime)); prime[0]=prime[1]=0; for(int i=2;i*i<=maxx;i++) if(prime[i]) for(int j=i*i;j<=maxx;j+=i) prime[j]=0; } int main() { int x,cnt; getprime(); while(scanf("%d",&x)!=EOF) { if(x==0) break; cnt=0; for(int i=2;i<=x/2;i++) { if(prime[i] && prime[x-i]) cnt++; } cout<<cnt<<endl; } return 0; }