#include<iostream>
#define K 224
#define M 50001
using namespace std;

int main(){
	int i, j, n, n_2, prime[25000]={0}, cnt=0, ans[50001];
	bool notp[M]={true, true, 0};
	i=2;
	j=0;
	while(j<K){
		for(j=i*i;j<M;j+=i){
			notp[j] = true;
		}
		for(j=i+1;j<=K;j++){
			if(notp[j] == false){
				i=j;
				break;
			}
		}
	}
	for(i=0;i<M;i++){
		if(!notp[i]){
			cnt++;
			prime[cnt-1]=i;
		}
	}
	while(true){
		cin>>n;if(!n)break;
		cnt=0;
		n_2 = (n>>1) + 1;
		for(i=0;prime[i]<n_2;i++){
			for(j=i;prime[j]<n;j++){
				if(prime[i]+prime[j] >= n){
					if(prime[i]+prime[j]==n)cnt++;
					else break;
				}
			}
		}
		cout << cnt << endl;
	}
	return 0;
}