1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import time

N = int(input()) #Najdłuższa możliwa przekątna
N_do_2 = N*N
# s=time.time()
# kwadraty = {f"{a},{b},{h}": a**2+b**2+h**2 for a in range(1, N+1)
#             for b in range(a, N+1)
#             for h in range(1, N+1)}
# wartosci = set(kwadraty.values())
#
# k = time.time()
# print(k-s)
C = [(a**2+b**2)  for a in range(1,N+1)    for b in range(a,N+1)]

licznik_prostopadloscianow = 0

# for a in range(1,N):
#     for b in range(a,N):
#         for h in range(1,N):
#             kwadrat = a**2+b**2+h**2
#             if kwadrat in wartosci:
#                 licznik_prostopadloscianow+=1

for c in C:
    for h in range(1,N+1):
        number = c+h*h
        if (number**0.5).is_integer() and number <= N_do_2:
            licznik_prostopadloscianow += 1

print(licznik_prostopadloscianow)