#include <cstdio>
#include <cmath>
#define buf 1000000
using namespace std;
int k=0;
int B[buf],A[buf*10]={0};
void Search(void);
int PrimeNumber(int n);
int main(void){
	int i,n;
	char str[buf];

	for(i=2;i<1000000;i++)
		PrimeNumber(i);
	Search();
	for( ;fgets(str,sizeof(str),stdin)!=NULL; ){
		sscanf(str,"%d",&n);
		if(n==0) break;
		printf("%d\n",A[n]);
	}
	return 0;
}

void Search(void){
	int i,j;
	for(i=0;i<k;i++){
			if(B[i]>buf/2) break;
		for(j=i;j<k;j++){
			A[B[i]+B[j]]+=1;
		}
	}
}
int PrimeNumber(int n){
	int i,c;
	if(n==2){
		B[k]=n;
		k++; return 0;
	}
	if(n<2 || n%2==0)
		return 0;
	c=sqrt(n);
	for(i=3;i<=c;i+=2){
		if(n%i==0)
			return 0;
	}
	B[k]=n;
	k++; return 0;
}