# 5 * 10 ** 5 以下の素数 41538 # r** 2 <= 10 ** 6となる素数rの数168 # r x pで全探索qは素数集合に含まれるかで判定 def eratos(n): primes = [True] * (n+1) primes[0], primes[1] = False, False for i in range(2, int(n**0.5)+1): if primes[i]: for j in range(i**2, n+1, i): primes[j] = False ret = [num for num, is_prime in enumerate(primes) if is_prime] return ret prime = eratos(5 * 10 ** 5 +1) N = int(input()) pr2 = [] for e in prime: t = e * e if t > N + N: break pr2.append(t) g_prime = set(prime) ans = 0 for r2 in pr2: for p in prime: q = r2 - p if p > N or q <= 1: break if q <= N and q in g_prime: ans += 1 print(ans)