#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;
      }
    }
  }

  while(true){
    int n;
    cin >> n;

    if(n==0)
      break;
#include<iostream>
using namespace std;

int main(){
  bool is_prime[100000];

  is_prime[0] = is_prime[1] = false;
  for(int i=2; i<100000; i++){
    is_prime[i] = true;
  }

  for(int i=2; i*i<100000; i++){
    if(is_prime[i]){
      for(int j=i*i; j<100000; j+=i){
	is_prime[j] = false;
      }
    }
  }
    if(n%2==0){
      int cnt = 0;
      for(int i=3; i<=n/2; i=i+2){
	if(is_prime[i] && is_prime[n-i]){
	  cnt++;
	}
      }

      cout << cnt <<endl;
    }
    else{
      cout << 0 << endl;
    }
  }

  return 0;
}

    

