#54051: 做成dp python AC0.4s


s1120660@dwvs.cy.edu.tw (LL)


import bisect
x = 32768
dp = [False,False,True]+[True,False]*(x//2-1)
for i in range(3,int(x**0.5)+1):
    if dp[i]:
        for j in range(i**2,x+1,i):
            dp[j] = False
sk = [2]+[i for i in range(3,32769,2) if dp[i]]

def ch(p):
    s = 0
    x = bisect.bisect_left(sk,p//2+1)
    for i in sk[:x]:
        if dp[p-i]:s += 1
    return s


ans = [0]*32769
for i in range(4,32769,2):
    ans[i] = ch(i)

a = ''
while 1:
    n = int(input())
    if n == 0:break
    a += f'{ans[n]}\n'
print(a.strip())