-- Based on <http://qiita.com/little_Haskeller/items/614a3ae20a517c19bb1f this article> .
primes :: Integral a => [a]
primes = map fromIntegral primes'
    where
        primes' = [2, 3, 5] ++ sieve2 5 7 (drop 2 primes')
        sieve2 m s (p : ps) = [n | n <- ns, gcd m n == 1] ++ sieve2 (m * p) (p * p) ps
            where ns = [x + y | x <- [s, s + 6 .. p * p - 2], y <- [0, 4]]

-- | Judges whether the given integer is a prime number or not.
-- Based on <https://wiki.haskell.org/Testing_primality this page> .
isPrime :: Integral a => a -> Bool
isPrime n = n > 1 && foldr (\p r -> p * p > n || ((mod n p) /= 0 && r)) True primes

combi :: Integral a => a -> a
combi n
    | even n = sum [1 | x <- [2 .. div n 2], let y = n - x, isPrime x, isPrime y]
    | odd n  = if isPrime (n - 2) then 1 else 0

main :: IO ()
main = putStr . unlines . map show . map combi . takeWhile (/= 0) . map read . lines =<< getContents