#include<iostream>
#include<cstring>

using namespace std;

int p[1000000];
int pt[1000000];
int pn;

int dp[1000001];

void init(){
  memset(p,1,sizeof(int)*1000000);
  memset(pt,0,sizeof(int)*1000000);
  memset(dp,0,sizeof(int)*1000001);
  p[0] = p[1]  = 0;
  for(int i =0; i < 1000; i++){
    if(p[i]){
      for(int j = i +i;j < 1000000;j +=i){
	p[j] = 0;
      }
    }
  }
  pn =0;
  for(int i = 0; i < 1000000;i++){
    if(p[i]){
      pt[pn] = i;
      pn++;
    }
  }
}

int solve(int t){
  int res = 0;  
  for(int i =0 ;pt[i]<=t/2;i++){
    if(p[t-pt[i]]){
      res++;
    }
  }
  return res;
}


int main(){
  int in;
  init();
  while(1){
    cin>>in;
    if(!in){
      break;
    }
    cout << solve(in) << endl;
  }
}