这题用素数筛选法。。。。 不过数组要开大点。。。 否则会挂掉去
#include<stdio.h>
#include<string.h>
#define max 1 << 15 + 1
int num[max + 5],n;
void fun( )
{
memset( num,0,sizeof( num ) );
num[0] = num[1] = 1;
for( int i = 2; i <= max / 2; ++i )
if( !num[i] )
for( int j = i + i; j <= max; j += i )
num[j] = 1;
}
int cal( )
{
int sum = 0;
for( int i = 2; i <= n / 2; ++i )
if( !num[i] && !num[n-i] )
++sum;
return sum;
}
int main( )
{
fun( );
while( scanf( "%d",&n ),n )
printf( "%d\n",cal( ) );
return 0;
}