#include<iostream>
using namespace std;

int main()
{
	bool is_prime[50001];
	
	is_prime[0]=is_prime[1]=false;
	
	for(int i=2;i<50001;i++){
		is_prime[i]=true;
	}
	
	for(int i=2;i*i<50001;i++){
		if(is_prime[i]){
			for(int j=i*i;j<50001;j+=i){
				is_prime[j]=false;
			}
		}
	}
	
	int n_prime[50001];
	int prime[50001];
	
	int cnt=0;
	for(int i=2;i<50001;i++){
		if(is_prime[i]){
			prime[cnt]=i;
			cnt++;
		}
		
		n_prime[i]=cnt;
	}
	
	int match;
	int N;
	
	while(true){
		int n;
		cin>>n;
		
		N=n_prime[n];
		
		if(n==0)
			break;
		
		match=0;
		
		for(int i=0;i<=N/2;i++){
			for(int j=N-1;j>=(N-1)/2;j--){
			if(prime[i]+prime[j]==n)
					match++;
			}
		}

		cout<<match<<endl;
		n++;
	}
	
	return 0;
}