#include<iostream>
using namespace std;

int main()
{
	bool is_prime[50000];
	
	is_prime[0]=is_prime[1]=false;
	
	for(int i=2;i<50000;i++){
		is_prime[i]=true;
	}
	
	for(int i=2;i*i<50000;i++){
		if(is_prime[i]){
			for(int j=i*i;j<50000;j+=i){
				is_prime[j]=false;
			}
		}
	}
	
	int n_prime[50000];
	int prime[50000];
	
	int cnt=0;
	for(int i=2;i<50000;i++){
		if(is_prime[i]){
			prime[cnt]=i;
			cnt++;
		}
		
		n_prime[i]=cnt;
	}
	
	int match,mid;
	int p1,p2;
	
	while(true){
		int n;
		cin>>n;
		
		if(n==0)
			break;
		
		match=0;
		
		if(n%2==0){
			for(int i=0;i<n_prime[n];i++){
				for(int j=i;j<n_prime[n];j++){
					p1=prime[i]; p2=prime[j];
					if(p1+p2==n)
						match++;
				}
			}
		}
		cout<<match<<endl;
		
	}
	
	return 0;

}