这道题很水。主要就是筛法求素数,直接上代码
#include <iostream>
#include <stdio.h>
#include <cmath>
#include <algorithm>
#include <string>
#include <cstring>
using namespace std;
int prime[100000] ;
void isPrime()
{
memset(prime,1,sizeof(prime));
prime[0] = prime[1] = 0 ;
int i , j ;
for(i = 2 ; i * i <= 100000 ; i ++ )
{
if(prime[i])
{
for(j = i * i ; j <= 100000 ; j += i)
{
prime[j] = 0 ;
}
}
}
}
int main()
{
int x ,i ;
isPrime();
while(cin >> x)
{
int sum = 0 ;
if(x == 0)
break ;
for(i = 2 ; i <= x / 2 ; i ++)
{
//cout << prime[i] <<' ' << prime[x-i]<< endl;
if(prime[i] && prime[x-i])
sum ++ ;
}
cout << sum << endl ;
}
return 0;
}