#include
#include
using namespace std;
/*
//普通的单个判断方法(一般情况挺好用的)(比2到根号X的方法要快)
bool Prime(int n)
{
int p[8]={4,2,4,2,4,6,2,6};
if(n==0||n==1)
return false;
if(n==2||n==3||n==5)
return true;
if(n%2==0||n%3==0||n%5==0)
return false;
for(int i=7;i<=(int)sqrt(n);)
{
for(int j=0;j<8;j++)
{
i+=p[j];
if(n%i==0)
return false;
}
}
return true;
}
*/
int A[1000001];
long SIZE = 1000000;
//列出素数表
void Prime()
{
A[1]=false;//1既不是素数也不是合数
for(int i=2;i<=SIZE;i++)//初始化成都是素数
A[i]=true;
for(int i=2;i<=SIZE;i++)//从2开始逐个抠除非素数的数
{
if(A[i])//如果是素数
{
for(int h = i+i;h<=SIZE;h+=i)//将它的倍数全部抠除
{
A[h]=false;
}
}
}
}
int main()
{
//freopen("D:\\output.txt","w",stdout);
Prime();
int n;
cin>>n;
while(n!=0)
{
int count =0;
for(int i=2;i<=(int)(n/2);i++)
{
if(A[i]&&A[n-i])
count++;
}
cout<
cin>>n;
}
}