import math def sieve_of_eratosthenes(n): prime = [True for i in range(n+1)] prime[0] = False prime[1] = False sqrt_n = math.ceil(math.sqrt(n)) for i in range(2, sqrt_n): if prime[i]: for j in range(2*i, n+1, i): prime[j] = False return prime n = int(input()) prm = sieve_of_eratosthenes(n) pri = [] pset = set() for i in range(n+1): if prm[i] == True: pri.append(i) pset.add(i) ans = 0 for i in range(len(pri)): r2 = pri[len(pri)-1-i]**2 if r2 > 10**6: continue for j in range(len(pri)): if r2-pri[j] in pset: ans += 1 print(ans)