from fractions import gcd
N=10**6
M=10**3
bound=9
T=0
for u in range(2,M):
for v in range(u%2+1,u,2):
if gcd(u,v)>1:
continue
c=u*u+v*v
if 3*c*c>N:
break
a,b=u*u-v*v,2*u*v
for p in range(2,bound):
for q in range(1,p):
if gcd(p,q)>1:
continue
r=(p+q)*c**p
for z in (complex(a,b),complex(-a,b),complex(b,a),complex(-b,a)):
w=p*c**(p-q)*z**q+q*z.conjugate()**p
x,y=int(round(w.real)),int(round(w.imag))
s=r
while x%c==y%c==0:
x//=c
y//=c
s//=c
k=N//s
T+=k*(k+1)*(abs(x)+abs(y))
f=[1]*(N+1)
for n in range(2,N+1,2):
f[n]=2*f[n//2]
for R in range(3,N+1):
rMax=(R-1)//2
T+=4*R*rMax
k=rMax//f[R]
s=k*(k+1)//2*f[R]
T-=2*s
if R%2==0:
x=f[R]//2
k=rMax//x
T-=4*(k*(k+1)//2*x-s)
print T