1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
from bisect import bisect_right

n = int(input())

kwadraty = set(i*i for i in range(1, n+1))
sumy = []
ds = 0
for a in range(1, n+1):
    for b in range(a, n+1):
        s = a*a+b*b
        if s <= n*n:
            sumy.append(s)

sumy.sort()

for h in range(1, n+1):
    idx = bisect_right(sumy, n*n-h*h)
    for s in sumy[:idx]:
        x = h*h+s
        if x in kwadraty:
            ds += 1

print(ds)