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())