#include<iostream>
#include<cmath>
using namespace std;
void pp(char* flags, long x){
long i,p,k;
for(i=1;i<=x;i++)flags[i]=0;
for(i=7;i<=x;i+=6)flags[i]=1;
for(i=5;i<=x;i+=6)flags[i]=1;
for(i=0;i<=ceil(sqrt(x)/6);i++){
p=6*i+1;
if(flags[p]){
for(k=p*p;k<=x;k+=p*6)flags[k]=0;
for(k=p*(p+4);k<=x;k+=p*6)flags[k]=0;
}
p=6*i+5;
if(flags[p]){
for(k=p*p;k<=x;k+=p*6)flags[k]=0;
for(k=p*(p+2);k<=x;k+=p*6)flags[k]=0;
}
}
}
int main(){
long i,n,s;
char* flags;
flags=new char[50001];
pp(flags,50000);
while(cin>>n,n){
s=0;
if(n==4){
s++;
}else if(n/2*2==n){
for(i=3;i*2<=n;i+=2)if(flags[i]&&flags[n-i])s++;
}else{
if(flags[n-2])s++;
}
cout<<s<<endl;
}
return 0;
}