peterverebics/CodeNet_Python_118 huggingface dataset:
N = int(input())
L = [0] * N

for x in range(1, 51):
    for y in range(1, 51):
        for z in range(1, 51):
            calc = x**2 + y**2 + z**2 + x*y + y*z + z*x
            if calc > N:
                break
            L[calc-1] += 1

for l in L:
    print(l)
n=int(input())
def f(i):
  co=0
  for z in range(1,7):
    for y in range(1,7):
      for x in range(1,7):
        if x**2+y**2+z**2+z*y+z*x+y*x==i:
          co+=1
  return co
for i in range(1,n+1):
  print(f(i))
n = int(input())
for i in range(5):
    print(0)
count = [0] * (10**6)
s = 0

for i in range(1, 101):
    for j in range(1, 101):
        for k in range(1, 101):
            s = i * i + j * j + k * k + i * j + j * k + k * i 
            count[s] += 1
for i in range(n):
    print(count[i])
import sys
import itertools as itr
readline = sys.stdin.buffer.readline



N=int(readline())
n=int(pow(N,0.5))-2
chk=list(itr.product(range(1,n),repeat=3))
cnt=[0]*(N+1)
for _ in range(len(chk)):
  i=chk[_][0]
  j=chk[_][1]
  k=chk[_][2]
  if pow(i,2)+pow(j,2)+pow(k,2)+i*j+j*k+k*i<=N:
    cnt[pow(i,2)+pow(j,2)+pow(k,2)+i*j+j*k+k*i]+=1
          

for i in range(1,N+1):
  print(cnt[i])
from itertools import combinations_with_replacement

n = int(input())

for i in range(1, n+1):
    ans = 0
    for v in combinations_with_replacement(range(1, 35), 3):        
        x, y, z = v

        if x**2 + y**2 + z**2 + x*y + y*z + z*x == i:
            if x == y == z:
                ans += 1
            else:
                ans += 3
            break

    print(ans)
from collections import defaultdict
ans = defaultdict(int)
N = int(input())

for i in range(1, 100):
    for j in range(1, 100):
        for k in range(1, 100):
            ans[i*i+j*j+k*k+i*j+j*k+k*i] += 1
for i in range(N):
    print(ans[i])
import collections

n = int(input())
ans_list = []
for x in range(1,100):
  for y in range(1,100):
    for z in range(1,100):
      hoge = x*x+y*y+z*z+x*y+y*z+z*x
      if hoge < 10000:
        ans_list.append(hoge)

counter = collections.Counter(ans_list)
for i in range(n):
  print(counter[i])
N = int(open(0).read())
cache = {}
cnt = 0
c = int(N ** 0.5)
cs = range(1, c)
for x in cs:
    for y in cs:
        for z in cs:
            n = x*x + y*y + z*z + x*y + y*z + z*x
            if n in cache:
                cache[n] += 1
            else:
                cache[n] = 1
print(cache)
for i in range(1, N+1):
    if i in cache:
        print(cache[i])
    else:
        print(0)
N = int(input())

result = [0] * N
for x in range(1, 101):
    for y in range(1, 101):
        for z in range(1, 101):
            temp = pow(x+y, 2) + pow(y+z, 2) + pow(z+x, 2)
            n = temp // 2
            if n >= N:
                break
            result[n-1] += 1

for r in result:
    print(r)
N = int(input())

a = [0]* N

x = [i for i in range(1,43)]
y = [i for i in range(1,43)]
z = [i for i in range(1,43)]
ans = []
for i in x:
    for j in y:
        for k in z:
            t = (i**2+j**2+k**2+i*j+j*k+k*i)
            if t <= N:
                a[t] += 1
            
for i in range(N):
    print(a[i])
N = int(input())
ans = [0] * 100000
for x in range(1, 100):
    for y in range(1, 100):
        for z in range(1, 100):
            ans[x*x+y*y+z*z+x*y+y*z+z*x] += 1
for i in range(N):
    print(ans[i])
N = int(input())
for i in range(1, N + 1):
    x = 0
    for j in range(1, 21):
        for k in range(1, 21):
            for l in range(1, 21):
                if i == j ** 2 + k ** 2 + l ** 2 + j * k + k * l + l * j:
                    x += 1
    print(x)
n = int(input())
a = [0 for _ in range(n+1)]
for i in range(1,n+1):
  if i*i>n:
    break
  for j in range(1,n+1):
    if i*i + j*j +i*j > n:
      break
    for k in range(1,n+1):
      tmp = i*i + j*j + k*k + i*j + j*k + k*i
      if tmp==n:
        a[tmp]+=1
      else:
        break
for i in range(1,n+1):
  print(a[i])
N = int(input())

cnt = 0
for n in range(1,N+1):
    for x in range(1,n+1):
        for y in range(1, n+1):
            if x**2 + y**2 + (N-x-y)**2 + x*y + y*(n-x-y) + (n-x-y)*x == n:
                cnt +=1
    print(cnt)
import itertools
ln = itertools.product(range(1,100),repeat = 3)
#print(ln)
line = [0 for i in range(10000)]
#print(len(line))
for i in ln:
    x,y,z = i
    n = x**2 +y**2 + z**2 +x*y + y*z + z*x
    if n <=1000:
        line[n-1]+=1
N = int(input())
for i in range(N):
    print(line[i])
N = int(input())
#A = list(map(int, input().split()))

ans = [0 for _ in range(N)]
for x in range(1, 101):
  for y in range(1, 101):
    for z in range(1, 101):
      k = (x+y)**2+(y+z)**2+(z+x)**2
      if k % 2 == 0 and k < 2*N:
        ans[((x+y)**2+(y+z)**2+(z+x)**2)//2-1] += 1

for i in range(N):
  print(ans[i])
n=int(input())

ans_list = []
for i in range(n):
    ans=0
    N = i+1
    for x in range(1,11):
        for y in range(1,11):
            for z in range(1,11):
                if x**2+y**2+z**2+x*y+y*z+z*x == N:
                    ans+=1
    ans_list.append(ans)

for i in range(n):
    print(ans_list[i])
N=int(input())
ans=[0]*(N+1)
to=int((N)**(1/2))+2
for x in range(1,to):
    for y in range(1,to):
        for z in range(1,to):
            temp=x*x+y*y+z*z+x*y+y*z+z*x
            if temp<N:
                ans[temp]+=1
for i in range(1,N+1):
    print(ans[i])
from itertools import product

n = int(input())
pro = product([x for x in range(1,4)],repeat=3)
lst = [0]*n
for p in pro:
    for i in range(1,n+1):
        if ((p[0]**2) + (p[1]**2) + (p[2]**2) + (p[0]*p[1]) + (p[1]*p[2]) + (p[2]*p[0])) == i:
            lst[i-1]+=1
for i in lst:
    print(i)
n = int(input())
num = [0]*1000

for x in range(1, 100):
    for y in range(1, 100):
        for z in range(1, 100):
            a = x**2 + y**2 + z**2 + x*y + y*z + z*x - 1
            if a <= 1000:
                num[a] += 1

num = num[:n]

for i in num:
    print(i)
#coding:utf-8
import itertools
def calculate(x,y,z):
    return x**2+y**2+z**2+x*y+y*z*x

n = int(input())
result_lst = [0] * n

for i,j,k in itertools.product(range(1,n+1),repeat=3):
    result = calculate(i,j,k)
    if result < n:
        result_lst[result] += 1

for i in result_lst:
    print(str(i))
N = int(input())

ans =[0]*(N+1)
for x in range(1, 101):
    for y in range(1, 101):
        for z in range(1, 101):
            s = x**2 + y**2 + z**2 + x*y + y*z + z*x
            if s <= N:
                ans[s] += 1

for i in ans:
    print(i)
import sys
read = sys.stdin.read
readlines = sys.stdin.readlines
def main():
    n = int(input())
    if n == 1:
        print(0)
        sys.exit()
    r = [0]*100000
    for i1 in range(1,20):
        for i2 in range(1,20):
            for i3 in range(1,20):
                t = i1**2 + i2**2 + i3**2 + i1*i2 + i2*i3 + i1*i3
                r[t] += 1
    print(*r[1:n+1],sep='\n')
if __name__ == '__main__':
    main()
import math
n = int(input())

highest = int(math.sqrt(n//3))+1
l = [0]*n
cal = 0

for x in range(1, highest+1):
  for y in range(1, highest+1):
    for z in range(1, highest+1):
      cal = x**2 + y**2 + z**2 + x*y + y*z + z*x
      if cal > n-1:
        continue
      else:
        l[cal-1] += 1
        
for i in range(len(l)):
  print(l[i])
import sys
input = sys.stdin.readline

# C - XYZ Triplets
def get_f(n):
	count = 0
	
	for x in range(1, n):
		if x ** 2 < n:
			for y in range(1, n):
				if x ** 2 + y ** 2 < n:
					for z in range(1, n):
						calc = x ** 2 + y ** 2 + x * y
						
						if calc < n:
							if z ** 2 + y * z + z * x == n - calc:
								print(x, y, z)
								count += 1
		
	return count


N = int(input())

for n in range(1, N + 1):
	print(get_f(n))
def foo(x,y,z):
    return x**2 + y**2 + z**2 + x*y + y*z + z*x

N = int(input())

A = [0]*100010

for i in range(1,100):
    for j in range(1,100):
        for k in range(1,100):
            A[foo(i,j,k)] += 1

for i in range(N):
    print(A[i])
import math

N=int(input())
count=[0]*(N+1)
for i in range(1,N+1):
  for x in range(1,int(math.sqrt((N+1)/6))):
    for y in range(1,int(math.sqrt((N+1)/6))):
      for z in range(1,int(math.sqrt((N+1)/6))):
        if(x**2+y**2+z**2+x*y+y*z+z*x==i):
          count[i]+=1
  print(count[i])
n = int(input())

for i in range(1,n+1):
    cnt = 0
    for j in range(1, 10^2): #x
        for k in range(1, 10^2): #y
            for l in range(1, 10^2): #z
                if j*j+k*k+l*l+j*k+k*l+l*j == i:
                      cnt += 1
    print(cnt)
N = int(input())
for n in range(N+1):
  cnt=0
  x=x2=1
  while x2<=n:
    y=y2=1
    while x2+y2+(x*y)<=n:
      z=z2=1
      while x2+y2+z2+(x*y)+(x*z)+(y*z)<=n:
        if  x2+y2+z2+(x*y)+(x*z)+(y*z)==n:
          cnt+=1
        z+=1
        z2=z**2
      y+=1
      y2=y**2
    x+=1
    x2=x**2
  print(cnt)
N = int(input())

ans = [0] * (N+1)
for x in range(1, 100):
    for y in range(1, 100):
        for z in range(1, 100):
            n = x**2 + y**2 + z**2 + x*y + y*z + z*x
            if n < N:
                ans[n] += 1

for i in range(1, N + 1):
    print(ans[i])
n=int(input())
y=[0 for _ in range(10**4)]
for j in range(1,41):
   for k in range(1,58):
      for u in range(1,101):
         a=j*j+k*k+u*u+j*k+k*u+u*j
         if a < n+1:
            if j==k and k==u:
               y[a-1]=1
            elif j==k or k==u:
               y[a-1]=3
            else:
               y[a-1]=6
for o in range(n):
   print(y[o])
n=int(input())
y=[0 for _ in range(10**4+1)]
for j in range(1,100):
   for k in range(1,100):
      for u in range(1,100):
         a=j*j+k*k+u*u+j*k+k*u+u*j
         if a <= 10**4:
            y[a]+=1
for o in range(n):
   print(y[o])
n=int(input())
ls=[0]*n
xyz=[1,1,1]
p=6
cnt=0
while p<=n:
  if xyz[0]==xyz[1] and xyz[0]==xyz[2]:
    ls[p-1]=1
  else:
    ls[p-1]=3
  xyz[cnt%3]+=1
  p=xyz[0]**2+xyz[1]**2+xyz[2]**2+xyz[0]*xyz[1]+xyz[1]*xyz[2]+xyz[0]*xyz[2]
for i in ls:
  print(i)
N=int(input())
dp=[0]*(10**4+1)
for i in range(1,100+1):
  for j in range(1,100+1):
    for k in range(1,100+1):
      a=(i+j)**2+(k+j)**2+(i+k)**2
      if 10**4<a:
        break
      dp[a//2]+=1
for l in range(1,N+1):
  print(dp[l])
N = int(input())

ans = [0]*(N+1)

for i in range(1, int(N**0.5)+1):
    for j in range(1, int(N**0.5)+2):
       for k in range(1, int(N**0.5)+2):
            f = i*i + j*j + k*k +i*j + j*k + k*i
            if f <= N:
                ans[f] += 1
print(len(ans))
from collections import defaultdict

N = int(input())
ctr = defaultdict(int)
for x in range(1, 42):
    for y in range(1, 42):
        for z in range(1, 42):
            res = x**2 + y**2 + z**2 + x*y + y*z + z*x
            ctr[res] += 1

for n in range(N + 1):
    print(ctr[n])
n = int(input())
cnt = [0]*(10**4+1)

for i in range(1,105):
  for j in range(1,105):
    for k in range(1,105):
      v = (i**2)+(j**2)+(k**2)+i*j+j*k+k*i
      if v<10**4:
        cnt[v] += 1
for i in range(1,n+1):
  print(cnt[i])
n = int(input())
ans = [0] * 10000

for i in range(1, 101):
    for j in range(1, 101):
        for k in range(1, 101):
            m = ((i ** 2) + (j ** 2) + (k ** 2) + (i * j) + (j * k) + (k * i))
            if m < 10000:
                ans[m-1] += 1

for i in range(n):
    print(ans[i])
import math
N = int(input())
n = int(math.sqrt(N))
ans = [0 for _ in range(N)]

for i in range(N):
   for x in range(n):
      for y in range(n):
         for z in range(n):
            if x ** 2 + y ** 2 + z ** 2 + x * y + y * z + z * y == N:
               ans[i] += 1

for i in range(N):
   print(ans[i])
N = int(input())
cs = [0]*N
for i in range(1,130):
    for j in range(1,130):
        for k in range(1,130):
            temp = i**2 + j**2 + k**2 + i*j + j*k + k*i
            if temp < N and temp > 0:
                cs[temp-1] += 1
for i in range(N):
    print(cs[i])
def solve(n):
    li = [0] * (n ** 3 + 1)
    for x in range(1, n + 1):
        for y in range(1, n + 1):
            for z in range(1, n + 1):
                li[x ** 2 + y ** 2 + z ** 2 + x * y + y * z + z * x] += 1
    return li


N = int(input())
ans = solve(50)
[print(ans[i]) for i in range(1, N + 1)]
import math
N=int(input())
d=int(math.sqrt(N)+1)
bucket=[0 for i in range(N)]
for i in range(1,d+1):
  for j in range(1,d+1):
    for k in range(1,d+1):
      if(i**2+j**2+k**2<=2*N and (i**2+j**2+k**2)%2==0 and i+j-k>=2 and j+k-i>=2 and k+i-j>=2):
        bucket[(i**2+j**2+k**2)//2-1]+=1
for i in range(N):
  print(bucket[i])
import sys
input = sys.stdin.readline
N=int(input())
s= [0 for i in range(10002)]
for x in range(1,100):
    for y in range(1,100):
        if x*x + y*y>1000:break
        for z in range(1,100):
            a = x*x + y*y + z*z +x*y + y*z + z*x
            if a >10000:break
            s[a] +=1

for i in range(N):
    print(s[i])
import itertools

N = int(input())
for n in range(1,N+1):
    cnt = 0
    for x,y in itertools.product(list(range(n)),repeat=2):
        z = n - x - y
        if z < 1: break
        if n == x*x + y*y +z*z + x*y + y*z + z*x:
            cnt += 1
    print(cnt)
from collections import Counter
from itertools import combinations_with_replacement
N = int(input())
L = [i for i in range(1, 50)]
ans = []
for c in combinations_with_replacement(L, 3):
    x = c[0]
    y = c[1]
    z = c[2]
    tmp = x**2+y**2+z**2+x*y+y*z+z*x
    ans.append(tmp)
C = Counter(ans)
for i in range(1, N+1):
    if C[i]:
        print(C[i]*3)
    else:
        print(0)
N = int(input())
ls = [0]*15000

for i in range(1,42):
    for j in range(1,42):
        for k in range(1,42):
            t = i**2 + j**2 + k**2 + i*j + j*k + k*i 
            ls[t] += 1

for p in range(1,N+1):
    print(ls[p])
N = int(input())

cnt = 0

for n in range(1,N+1):
    for z in range(1,34):
        for y in range(1,34):
            for x in range(1,34):
                if x*x+y*y+z*z+x*y+y*z+z*x == n:
                    cnt +=1
    print(cnt)
    cnt=0
a={}
for i in range(1,50):
    for j in range(1,50):
        for k in range(1,50):
            n=i*i+j*j+k*k+i*j+i*k+j*k

            if n not in a:
                a[n]=1
            else:
                a[n]+=1

t=int(input())
for i in range(1,t+1):
    if i in a:
        print(a[i])
    else:
        print(0)
n=int(input())
a=[0]*10001
for i in range(101):
  for j in range(101):
    for k in range(101):
      v=i**2+j**2+k**2+i*j+j*k+k*i
      if v<=10000:
        a[v]+=1
for m in range(n):
  print(a[m+1])
#coding:utf-8
import itertools
def calculate(x,y,z):
    return x**2+y**2+z**2+x*y+y*z*x

n = int(input())
result_lst = [0] * n

for i,j,k in itertools.product(range(1,n+1),repeat=3):
    result = calculate(i,j,k)
    if result < n:
        result_lst[result] += 1

for i in result_lst:
    print(str(i) + '\n')
import math
n=int(input())
z=0
d=0
ans=0
for i in range(1,n+1):
  for x in range(1,int(math.sqrt(n)+2)):
    d=4*x*x-4*(3*x*x-i)
    if d<0:
      continue
    z=(math.sqrt(d)-2*x)/2
    if z.is_integer():
      if x==int(z) and int(z)>=1:
        ans+=1
        continue
      elif int(z)>=1:
        ans+=3
        continue
    else:
      continue
  print(ans)
  ans=0
N = int(input())
ans = [0]*((10**4)+1)

for x in range(1,101):
    for y in range(1,101):
        for z in range(1,101):
            num = x * x + y * y + z * z + x * y + y * z + z * x
            if num <= N:
                ans[num] = ans[num] + 1

for i in range(N+1):
    print(ans[i])
N = int(input().strip())
s=[]
for a in range (1,101):
    for b in range(1,101):
        for c in range(1,101):
            s.append(a*a+b*b+c*c+a*b+b*c+c*a)

for l in range(N):
    print(s.count(l))
N = int(input())

def f(n):
    total = 0
    for x in range(1,100):
        for y in range(1,100):
            for z in range(1,100):
                if x**2 + y**2 + z**2 + x*y + y*z + z*x == n:
                    total += 1
    return total

for i in range(N):
    print(f(i))
import sys
import numpy as np
import math
import collections
import copy
from collections import deque 
from functools import reduce
from itertools import product

# input = sys.stdin.readline

N = int(input())
ans = [0 for _ in range(10050)]
for i in range(1, 105):
    for j in range(1, 105):
        for k in range(1, 105):
            idx = i**2 + j**2 + k **2 + i*j + i*k + j*k
            if idx < 10000:
                ans[idx-1] += 1
for i in range(N):
  print(ans[i])
import collections
import sys
A = []
n = int(input())
for i in range(1,35):
    for j in range(1,35):
        for k in range(1,35):
            A.append(i**2+j**2+k**2+i*j+j*k+k*i)
c = collections.Counter(A)


for x in range(1,n+1):
    print(c[x])
N = int(input())
ls = [0]*15000

for i in range(1,42):
    for j in range(1,42):
        for k in range(1,42):
            t = i**2 + j**2 + k**2 + i*j + j*k + k*i 
            ls[t] += 1

for p in range(1,N+1):
    print(p,ls[p])
N = int(input())
l = [0]*N

for x in range(1,101):
  for y in range(1,101):
    for z in range(1,101):
      if (x**2+y**2+z**2+x*y+y*z+z*x)<N:
        l[x**2+y**2+z**2+x*y+y*z+z*x-1]+=1

for i in l:
  print(i)
import math

n = int(input())
count = 0

for i in range (1,n):
    for x in range (1,n):
        for y in range (1,n):
            for z in range (1,n):
                if x*x + y*y + z*z + x*y + y*z + z*x == i:
                    count = count + 1
                    count = 0
    print(count)
import itertools

n = int(input())

cnt = [0] * (10 ** 4 + 1)

for x, y, z in itertools.product(range(1, 10 ** 2), repeat=3):
    idx = x ** 2 + y ** 2 + z ** 2 + x * y + y * z + z * x
    if idx <= 10 ** 4:
        cnt[idx] += 1

for num in cnt[1:]:
    print(num)
from math import sqrt
n = int(input())

for I in range(1, n+1):
    c = 0
    a = int(sqrt(I))
    for i in range(1, a-2-2*a):
        for j in range(1, a-2-2*a):
            for k in range(1, a-2-2*a):
                if i**2 + j**2 + k**2 + i*j + j*k + k*i == I:
                    c += 1
    print(c)
n = int(input())

for i in range(n):
    count = 0
    for x in range(1,i//3+1):
        for y in range(1, i//3+1):
            for z in range(1,i//3+1):
                if x ** 2 + y ** 2 + z ** 2 + x * y + y * z + z * x > i:
                    break
                elif x ** 2 + y ** 2 + z ** 2 + x * y + y * z + z * x == i:
                    count += 1
    print(count)
n=int(input())
ans=0
for N in range(1,n+1):
  for i in range(1,2*10**2+1):
    for j in range(1,2*10**2+1):
      for k in range(1,2*10**2+1):
        if (i+j)**2+(j+k)**2+(k+i)**2==2*N:
          ans+=1
  print(ans)
from itertools import product

N = int(input())

cnt = [0]*1000000

for x in range(1,21):
    for y in range(1,21):
        for z in range(1,21):
            cnt[x**2 + y**2 + z**2 + x*y + y*z + z*x -1] += 1

for i in range(N):
    print(cnt[i])
n = int(input())

ans = 0
ans1 = [0] * 10000
for i in range(1,100):
  for j in range(1,100):
    for k in range(1,100):
      ans = i**2 + j**2 +k**2 + i*j + j*k + k*i
      if(ans < 10000):
        ans1[ans] += 1
for i in range(n):
  print(ans1[i])
N = int(input())

for n in range(1, N+1):
  for x in range(1, 10**2):
    for y in range(1, 10**2):
      answer = 0
      if 3* x**2 + y**2 + 2*x*y == n:
        num_pair = [x, y]
        if num_pair[0] == num_pair[1]:
          answer = 1
          break
        else:
          answer = 3
          break
    break

  print(answer)
from collections import defaultdict
ans = defaultdict(int)
N = int(input())

for i in range(1, N):
    for j in range(1, N):
        for k in range(1, N):
            ans[i*i+j*j+k*k+i*j+j*k+k*i] += 1
for i in range(N):
    print(ans[i])
N = int(input())
a = [0 for x in range(N)]
for i in range(1,N+1):
    for j in range(1,N+1):
        for k in range(1,N+1):
            n = i*i+j*j+k*k+i*j+j*k+i*k
            if n <= N:
                a[n] += 1
for i in range(N):
    print(a[i])
import math
N = int(input())
for i in range(1, N+1):
    cnt = 0
    if i < 6:
        print(0)
    for x in range(1, int(math.sqrt(i))):
        for y in range(1, int(math.sqrt(i))):
            for z in range(1, int(math.sqrt(i))):
                if ((x+y+z)**2)-x*y-y*z-z*x == i:
                    cnt += 1
    print(cnt)
N = int(input())
ans = 0
tmp = []
for i in range(1,10):
    for j in range(1,10):
        for h in range(1,10):
            num = i*i + j*j + h*h + i*j + j*h +h*i
            tmp.append(num)
            num = 0

tmp.sort()


for i in range(1,N+1):
    print(tmp.count(i))
N=int(input())

a=[0]*N

x=1
while x<N:
    y=1
    while x*x+y*y+x*y<N:
        z=1
        while z*z+x*x+y*y+x*y+z*y+z*x<N:
            a[z*z+x*x+y*y+x*y+z*y+z*x]+=1
            z+=1
        y+=1
    x+=1

for n in a:
    print(n)
import math

n = int(input())

ans = 0

for i in range(1,n+1):
  r = math.floor(math.sqrt(i))
  for x in range(1,r+1):
    for y in range(x,r+1):
      for z in range(y,r+1):
        if x**2 + y**2 + z**2 + x*y + y*z + z*x == i:
          if x == y and y == z:
            ans += 1
          elif x == y or y == z or z == x:
            ans += 3
          else:
            ans += 6
  print(i,ans)
  ans = 0
from collections import defaultdict
import math
n=int(input())
d=defaultdict(int)

if n>2:
    m=int(math.sqrt(n))
    for l in range(3,m+2):
        for i in range(1,l-1):
            for j in range(1,l-i):
                k=l-i-j
                N=i*i+j*j+k*k+i*j+j*k+k*i
                d[N]+=1
for i in range(1,n+1):
    print(d[i])
N = int(input())
ans = [0]*(N+1)
for x in range(1,46):
    for y in range(1,46):
        for z in range(1,46):
            tmp = x**2 + y**2 + z**2 +x*y + y*z + z*x
            if tmp > N:
                continue
            ans[tmp]+=1
for i in range(1,N+1):
    print(ans[i])
n=int(input())
ls=[0]*n
x=1
y=1
z=1
p=6
m=int(n**0.5)
for x in range(1,m+3):
  for y in range(1,x+1):
    for z in range(1,y+1):
      k=3
      if x==y and x==z:
        k=1
      j=x*x+y*y+z*z+x*y+y*z+x*z
      if j<=n:
        ls[j-1]+=k
      else:
        break
for i in ls:
  print(i)
from itertools import combinations_with_replacement

N = int(input())
ans = [0] * (N + 1)
for x, y, z in combinations_with_replacement(list(range(1, 50)), 3):
    val = x ** 2 + y ** 2 + z ** 2 + x * y + y * z + x * z

    n_diff = len(set([x, y, z]))
    if n_diff == 3:
        cnt = 6
    if n_diff == 2:
        cnt = 3
    if n_diff == 1:
        cnt = 1

    # print(val)
    
    if val <= N:
        ans[val] += cnt

print('\n'.join(map(str, ans[1:])))
N = int(input())

x, y, z = 1,1,1
ans_dict = {}

for x in range(1,110):
    for y in range(1,110-x):
        for z in range(1,110-x-y):
            ans = (x + y)**2 + (y + z)**2 + (z + x)**2
            if ans in ans_dict:
                ans_dict[ans] += 1
            else:
                ans_dict[ans] = 1

for n in range(1, N+1):
    if 2*n in ans_dict:
        print(ans_dict[2*n])
    else:
        print(0)
N = int(input())
L=[0]*N
for x in range(1,150):
    for y in range(x,150):
        for z in range(y,150):
            f=x**2+y**2+z**2+x*y+y*z+z*x
            if f<=N:
                if x==y==z:
                    L[f-1]+=1
                else:
                    L[f-1]+=3
for i in range(N):
    print(L[i])
import math
n = int(input())
for i in range(n):
    cnt = 0
    for x in range(1,n):
        for y in range(1,n):
            b = x + y
            c = x**2+y**2+x*y-i
            buf = b**2-4*c
            if buf >= 0:
                z = -b + math.sqrt(buf)
                if z.is_integer() and z > 0:
                    cnt += 1
    print(cnt)
n = int(input())
for i in range(n):
    ans=0
    for j in range(1,101):
        for k in range(1,101):
            if j * j + j * j + k * k + j * j + j * k + k * j == i+1:
                if j!=k:
                    ans += 3
                else:
                    ans += 1
    print(ans)
#!/usr/bin/env python
# -*- coding: utf-8 -*-


def main():
    N = int(input())
    ans = [0] * (6 * 10**4 + 10)

    for x in range(1, 101):
        for y in range(1, 101):
            for z in range(1, 101):
                ans[x**2 + y**2 + z**2 + x * y + y * z + x * z] += 1

    for i in range(N):
        print(ans[i])


if __name__ == "__main__":
    main()
N = int(input())
ans = [0]*(N+1)
print(ans)
for x in range(1,100):
    for y in range(1,100):
        for z in range(1,100):
            num = x*x + y*y + z*z + x*y + y*z + z*x
            if num>N:
                break
            ans[num] = ans[num] + 1
for m in ans:
    print(m)