#include <stdio.h>
#include<iostream>
#include<math.h>
using namespace std;
bool flag[20000005];
int primes[20000000];
int cnt;
void sieve(int n)
{
cnt=0;
primes[cnt++] = 2;
for(int i=3; i<=n; i+=2)
{
if(flag[i] == 0)
{
primes[cnt++] = i;
if(i <= n/i)
{
for(int j=i*i; j<=n; j+=i*2)
flag[j] = 1;
}
}
}
return ;
}
int main()
{
int n,i,j,count,l,c;
sieve(33000);
while(scanf("%d",&n)==1)
{
if(n==0)
break;
count=0;
c =0;
for(i=0; i<cnt; i++)
{
for(j=0; j<cnt; j++)
{
if(primes[i]==primes[j]&& primes[i]+primes[j]==n)
{
c++;
}
else if(primes[i]+primes[j]==n)
{
count++;
}
if(primes[i]+primes[j]>n)
break;
}
}
count = count/2 +c;
printf("%d\n",count);
}
return 0;
}
0 Comments