#include <bits/stdc++.h>

using namespace std;

const int MAX = 1 << 15;
bool is_prime[MAX];

void sieve() {
    fill(is_prime, is_prime + MAX, true);
    is_prime[0] = is_prime[1] = false;
    for (int i = 2; i * i <= MAX; i++) {
        if (!is_prime[i]) continue;
        for (int j = i * i; j < MAX; j += i)
            is_prime[j] = false;
    }
}

int main(void) {
    sieve();
    
    int n;
    while (cin >> n, n) {
        int ans = 0;
        for (int i = 2; i <= n - i; i++)
            if (is_prime[i] && is_prime[n - i]) ans++;
        cout << ans << endl;
    }

    return 0;
}
