#include <iostream>
using namespace std;
#define MAX_N 1000001
int main(){
  int n;
  int isPrime[MAX_N];
  fill(isPrime,isPrime + MAX_N,1);

  isPrime[0] = isPrime[1] = 0;

  for(int i = 2 ; i*i < MAX_N ; i++){
    if(isPrime[i]){
      for(int j = i*2 ; j < MAX_N ; j+=i )isPrime[j] = 0;
    }
  }

  int p = 0;
  int ans[MAX_N] = {0};

  for(int i = 0 ; i < MAX_N ; i++)if(isPrime[i])isPrime[p++] = i;

  for(int i = 0 ; i < p ; i++ ){
    for(int j = i ; isPrime[i] + isPrime[j] < MAX_N ; j++ ){
      ++ans[isPrime[i] + isPrime[j]];
    }
  }

  while( cin >> n,n ){
    cout << ans[n] << endl;
    }
  return 0;
}