#include <cmath>
#include <iostream>
#include <vector>
typedef std::vector <int> vi;
vi PRIMES,S;
int prime(int n){
    int i=0,j=1,h=(n+1)/2,x,r=(int)pow(n,.5);
    vi s(h),p;
    while(j<=n){
        s[i++]=j;
        j+=2;
    }
    for (i=1;i<h;i++)
        if (x=s[i]){
            p.push_back(x);
            if (i<=r) for (j=x*x/2;j<h;j+=x) s[j]=0;
        }
	PRIMES=p;
	S=s;
    return 0;
}
int f0056(int n){
	int x=0,i,e;
	if (n<4) return 0;
	if (n==4) return 1;
	if (n%2==1){
		if (S[(n-2)/2]) return 1;
	}
	else
		for (i=0;i<PRIMES.size();i++){
			e=PRIMES[i];
			if (e>n/2) break;
			if (S[(n-e)/2]) x++;
		}
	return x;
}
int main(void){
    int n;
    prime(105000);
    while (true){
        std::cin>>n; if (n==0) break;
        std::cout<<f0056(n)<<"\n";
    }
} 