#!/usr/bin/env python3 # %% import sys read = sys.stdin.buffer.read readline = sys.stdin.buffer.readline readlines = sys.stdin.buffer.readlines # %% # import numpy as np # from numba import njit # %% def gen_pythagorean_triples(bound): """generate primitive pythagorean triples. Parameters ---------- bound : int upper bound of pelimeter of the triangle Yields ------- tuple(int, int, int) primitive pythagorean triangles """ if bound <= 12: return yield (3, 4, 5) stack = [(3, 4, 5)] while stack: a, b, c = stack.pop() for x, y, z in [ (a - 2 * b + 2 * c, 2 * a - b + 2 * c, 2 * a - 2 * b + 3 * c), (a + 2 * b + 2 * c, 2 * a + b + 2 * c, 2 * a + 2 * b + 3 * c), (-a + 2 * b + 2 * c, -2 * a + b + 2 * c, -2 * a + 2 * b + 3 * c)]: if x + y + z < bound: yield (x, y, z) stack.append((x, y, z)) # %% L = int(readline()) # %% N = L // 4 answer = sum(1 for x in gen_pythagorean_triples(N + 1)) print(answer)