#include <iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<algorithm> #include<cmath> #include<queue> #include<deque> #define MAX 10007 using namespace std; int n,ans; bool isprime[10007]; void sieve() { int p=0; for(int i=0;i<MAX;i++) isprime[i]=true; isprime[0]=isprime[1]=false; for(int i=2;i<MAX;i++) { if(isprime[i]){ for(int j=2*i;j<MAX;j+=i) isprime[j]=false; } } } int main() { while(1){ ans=0; scanf("%d",&n); if(n==0) break; sieve(); for(int i=2;i<n/2;i++) { if(isprime[i]&&isprime[n-i]) ans++; } printf("%d\n",ans); } return 0; }
原文:http://blog.csdn.net/yuanchang_best/article/details/38326667