peterverebics/CodeNet_Python_118 huggingface dataset:
def main():
    n = int(input())
    for i in range(n):
        calc(i)
 
def calc(n):
    count = 0
    for x in range(1, n + 1):
        for y in range(1, n + 1):
            for z in range(1, n + 1):
                a = x ** 2 + y ** 2 + z ** 2 + x * y + y * z + z * x
                if a == n+1:
                     count += 1
                if a > n+1:
                    break
    print(count)
    return
from math import sqrt
l = [-1]+[0]*10**4
n = int(input())
for i in range(1,int(sqrt(n))+1):
    for j in range(1,int(sqrt(n))+1):
        for k in range(1,int(sqrt(n))+1):
            ans = i**2+j**2+k**2+i*j+j*k+k*i
            if ans <= 10*4:
                l[ans] += 1
for i in range(1,n+1):
    print(l[i])
import sys
read = sys.stdin.read
readlines = sys.stdin.readlines
def main():
    n = int(input())
    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()
N = int(input())
Xlist = [0]*(10**4)
for i in range(75):
    for j in range (70):
        for k in range(70):
            A = (i + j + 2)**2 + (k + j + 2)**2 + (i + k + 2)**2
            if ((A % 2) == 0)and(A <= 20000):
                Xlist[(A//2 -1)] += 1

for a in range (N):
    print(Xlist[a])
import sys
def rs(): return sys.stdin.readline().rstrip()
def ri(): return int(rs())
def rs_(): return [_ for _ in rs().split()]
def ri_(): return [int(_) for _ in rs().split()]

N = ri()
f = [0] * N
for x in range(1,100+1):
    for y in range(1, 100+1):
        for z in range(1, 100+1):
            h = x**2 + y**2 + z**2 + x*y + y*z + z*x
            if h > N - 1:
                continue
            f[h - 1] += 1
for i in range(N):
    print(f[i])
N = int(input())

for n in range(1, N+1):
  cnt = 0
  for x in range(100):
    for y in range(100):
      for z in range(100):
        if (x + y + z) ** 2 - (x * y) - (y * z) - (z * x) == n:
          cnt += 1
          
print(cnt)
import collections

ans_list = []

for x in range(1, 100):
    for y in range(1, 100):
        for z in range(1, 100):
            tmp = x ** 2 + y ** 2 + z ** 2 + x * y + y * z + z * x
            if tmp <= 10000:
                ans_list.append(tmp)

ans_list = sorted(ans_list)
print(ans_list)

N = int(input())

c = collections.Counter(ans_list)

for i in range(1, N + 1):
    print(c[i])
N = int(input())
res=[0] * 10000
for x in range(1,42):
    for y in range(1,42):
        for z in range(1,42):
            k=x*x+y*y+z*z+x*y+y*z+z*x
            if k>10000: continue
            res[k-1]+=1
for i in range(N):
    print(res[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())
ans = [0]*n
max = int(math.sqrt(max(n-2,1)))

for x in range(1,max):
  for y in range(1,max):
    for z in range(1,max):
      ns = x**2 + y**2 + z**2 + x*y + y*z + z*x
      if ns < n:
        ans[ns-1] += 1
for a in range(n):
  print(ans[a])
N = int(input())

results = [0] * N

def g(x, y, z):
  return x ** 2 + y ** 2 + z ** 2 + x * y + y * z + z * x

for x in range(1,32):
  for y in range(1, 32):
    for z in range(1, 32):
      w = g(x,y,z)
      if w > N: break
      results[w - 1] += 1

for result in results:
  print(result)
n = int(input())
from itertools import product
l = list(range(1, 100+1))
f = [0 for _ in range(11000)]
def func(x,y,z):
    return x**2 + y**2 + z**2 + x*y + y*z + z*x
for x, y, z in product(l, l, l):
    v = func(x,y,z)
    if v <= n:
        f[v] += 1
for ans in f[:n]:
    print(ans)
import math

n = int(input())

for i in range(6, n + 1):
    cnt = 0
    f = int(math.sqrt(n)) + 1
    for x in range(1, f):
        for y in range(1, f):
            for z in range(1, f):
#                 print(i, x, y, z)
                if (x ** 2) + (y ** 2) + (z ** 2) + (x * y) + (y * z) + (z * x) == i:
                    cnt += 1

    print(cnt)
n = int(input())
ans = [0]*(n+1)
for x in range(1,20):
    for y in range(1,20):
        for z in range(1,20):
            ni = x**2 + y**2 + z**2 + x*y + y*z + z*x
            if ni <= n:
                ans[ni] += 1
for i in range(1, n+1):
    print(ans[i])
n = int(input())
ans = [0] * (n + 1)
loop = int((n/6) ** .5) + 1

def f(i, j, k):
    return i ** 2 + j ** 2 + k ** 2 + i*j + j*k + k*i

for i in range(1, loop+1):
    for j in range(1, loop+1):
        for k in range(1, loop+1):
            res = int(f(i, j, k))
            if res <= n:
                ans[res] += 1

for a in ans[1:]:
    print(a)
# -*- coding: utf-8 -*-
import math

n = int(input())

for i in range(n + 1):
    s = 0
    p = math.floor(n / 6) + 1
    if i > 5:
        for x in range(1, p + 1):
            for y in range(1, p + 1):
                for z in range(1, p + 1):
                    if (x**2) + (y**2) + (z**2) + (x*y) + (y*z) + (z*x) == i:
                        s += 1
    print(s)
n = int(input())

table = [0]*(10**4+100)

for x in range(1,42):
    for y in range(1,42):
        for z in range(1,42):
            total = x**2 + y**2 + z**2 + x*y + y*z + z*x
            table[total] += 1
            
for i in table[1:n+1]:
    print(i)
n=int(input())
ans=[0]*n
t=3
while (t-2)**2<n:
  for i in range(1,t-1):
    for j in range(1,t-i):
      k=t-i-j
      if t**2-i*j-j*k-k*i-1<n:
        ans[t**2-i*j-j*k-k*i-1]=ans[t**2-i*j-j*k-k*i-1]+1
  t=t+1
for i in range(n):
  print(ans[i])
n = int(input())

count_n = []
ans = []
for o in range(n):
  temp = 0
  for i in range(1,20):
    for j in range(1,20):
      for k in range(1,20):
        if o ==  i ** 2 + j **2 + k ** 2 + i * j + j * k + k * i:
          count_n.append(o)

for i in range(1,n+1):
  if i not in count_n:
    ans.append(0)
  else:
    ans.append(count_n.count(i))
  
print(ans)
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):
  co=f(i)
  print(co)
n = 10**4
k = [0]*10**4
for x in range(1,5):
    for y in range(1,5):
        for z in range(1,5):
            for i in range(n+1):
                if (x+y+z)**2 -(x*y+y*z+z*x) == i:
                    k[i-1] += 1
for i in range(int(input())):
    print(k[i])
n=int(input())
ans = [0 for _ in range(10001)]
for i in range(101):
  for j in range(101):
    for k in range(101):
      v = i*i + j*j + k*k + i*j + j*k + k*i
      if v < 10001:
        ans[v] += 1

for i in range(n):
  print(ans[i+1])
n = [0 for i in range(10001)]
for z in range(1, 59, 1):
    for y in range(1, 59, 1):
        for x in range(1, 59, 1):
            tmp = x ** 2 + y ** 2 + z ** 2 + x * y + y * z + z * x
            if tmp > 10 ** 4:
                break
            else:
                n[tmp] += 1
N = int(input())
for i in range(1, N+1, 1):
    print(n[i])
n=int(input())
ans=0
for i in range(1,n+1):
  cnt=0
  for x in range(1,101):
    if x**2>i:
      break
    for y in range(1,x+1):
      if x**2+y**2>i:
        break
      for z in range(1,y+1):
        if x**2+y**2+z**2+x*y+y*z+z*x==i:
          cnt+=3
  ans=cnt
  if i==6:
    ans=1
  print(ans)
#C
import math

N = int(input())


count = [0] * 10100
for j in range(1, 105):
    for k in range(1, 105):
        for l in range(1, 105):
            v = (j+k+l) ** 2 - (j*k + k*l + l*j)
            if v <= 10050:
                count[v] += 1

for i in range(1, N):
    print(count[i])
N = int(input())
ans = list()

for i in range(N+1):
    ans.append(0)

for x in range(1,101):
    for y in range(1,101):
        for z in range(1,101):
            tmp = x**2 + y**2 + z**2 + x*y + y*z + z*x
            if tmp < N:
                ans[tmp] += 1
for i in range(N):
    print(ans[i+1])
N = int(input())

n = N ** (1/2)
n = int(n)


for nn in range(N):
    ans = 0
    for x in range(1, n + 1):
        for y in range(1, n + 1):
            a = x + y
            b = x*x + y*y + x*y - nn
            if a*a -4*b >= 0:
                c = ((a*a-4*b)**(1/2)-a)/2
                if c.is_integer() and c > 0:
                    ans += 1

    print(ans)
n = int(input())
l = [0 for i in range(n+1)]
for i in range(1, n):
  x = (i**2)*6
  if x <= n:
    l[x] = 1
  else:
    break

x = 11
s = 7
for _ in range(10**9):
  if x <= n:
    l[x] = 3
    x += s
    s += 2
  else:
    break
    
x = 17
s = 17
for _ in range(10**9):
  if x <= n:
    l[x] = 3
    x += s
    s += 6
  else:
    break

l.pop(0)
for i in range(n):
  print(l[i])
def triplets_brute(n):
  counter = 0
  upper = round(n**0.5)
  for x in range(1, upper+1):
    for y in range(1, upper+1):
      for z in range(1, upper+1):
        if x**2+y**2+z**2+x*y+y*z+z*x==n:
          counter += 1
print(triplets_brute(int(input())))
import math
N = int(input())
for i in range(1, N+1):
    ans = 0
    for x in range(1, round(math.pow(i, 1/3))):
        for y in range(1, round(math.pow(i, 1/3))):
            for z in range(1, round(math.pow(i, 1/3))):
                tmp = x**2 + y**2 + z**2 + x*y + y*z + z*x
                if tmp == i:
                    ans += 1
    print(ans)
import numpy as np

n = int(input())
ans = [0 for _ in range(n+1)]

tmp = int(np.sqrt(n)+1)
for i in range(1, tmp):
    for j in range(1, tmp):
        for k in range(1, tmp):
            v = i**2+j**2+k**2+i*j+i*k+j*k
            if v < n:
                ans[v]+=1
for a in ans[1:]:
    print(a)
from collections import defaultdict
import math
n=int(input())
d=defaultdict(int)

if n>2:
    m=int(math.sqrt(n))
    for l in range(1,m+4):
        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 + 5)
for x in range(1, 100):
    for y in range(1, 100):
        for z in range(1, 100):
            tmp = x ** 2 + y ** 2 + z ** 2 + x * y + y * z + z * x
            if N >= tmp:
                ans[tmp] += 1

for i in range(N+1):
    print(ans[i])
ans = [0 for i in range(10050)]
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 + i*k
      if v < 10050:
        ans[v] +1
       
n = int(input())
for i in range(n):
  print(ans[i+1])
from collections import defaultdict
dict=defaultdict(lambda:0)
n=int(input())

for x in range(1,100):
    for y in range(1, 100):
        for z in range(1,100):
            p=(x+y+z)**2-(x*y+y*z+z*x)
            dict[p]+=1

for i in range(1,n):
    print(dict[i])
import itertools

N = int(input())
lst = [0]*N
for x,y,z in itertools.product(list(range(1,int(N**0.5))),repeat=3):
    val = x*x + y*y +z*z + x*y + y*z + z*x
    if val <= N-1:
        lst[val-1] += 1
print(*lst,sep="\n")
import math
N = int(input())
zeros = [0 for i in range(N+1)]
for x in range(1,int(math.sqrt(N))):
    for y in range(1,int(math.sqrt(N))):
        for z in range(1,int(math.sqrt(N))):
            n = x**2 + y**2 + z**2 + x*y + y*z + z*x
            if n < N:
                zeros[n]+=1

for i in range(N):
    print(zeros[i+1])
N = int(input())
record = [0] * 1000000

for i in range(1,N):
    for j in range(1,N):
        sum = i**2 + i**2 + j**2 + i*i + i*j +j*i
        if sum >= N: break
        # print(i,j)
        record[sum] += 3

for num in record[1:N+1]:
    print(num)
N = int(input())
A = []
for i in range(1,46):
  for j in range(1,46):
    for k in range(1,46):
      A.append(i**2+j**2+k**2+i*j+i*k+j*k)
A = sorted(A)
B = [0]*10001
for i in range(10001):
  if A[i] < 10001:
    B[A[i]] += 1
C = B[1:N+1]
[print(i) for i in C]
N=int(input())
ans = [0]*10000000
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+i*k] += 1
for i in range(N):
    print(ans[i])
from math import sqrt, floor

N = int(input())
d = [0] * (N+1)

k = floor(sqrt(N))
for x in range(1, k):
    for y in range(1, k):
        for z in range(1, k):
            c = x*x + y*y + z*z + x*y + y*z + z*x
            if 1 <= c <= N:
                d[c] += 1


for i in range(1, N):
    print(d[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):
            tmp = x*x+y*y+z*z+x*y+y*z+z*x
            if 1 <= tmp <= N:
                ans[tmp] += 1
for i in ans:
    print(i)
n = int(input())
ans = [0,0,0,0,0,1,0,0,0,0,3,0,0,0,0,0,3,3,0,0]+[0 for i in range(n-20)]
for i in range(21,n+1):
  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 == i:
          ans[i-1]+=1
for i in ans:
  print(i)
N=int(input())
ans=[0]*(10**5)
L=list(i for i in range(1,40))

from itertools import*
P=list(product(L,repeat=3))
for x,y,z in P:
    ans[x**2+y**2+z**2+x*y+y*z+z*x-1]+=1

for a in ans[:N]:
    print(a)
N = int(input())

cnt = [0] * N

for x in range(1, 50):
    for y in range(1, 50):
        for z in range(1, 50):
            tmp = x * x + y * y + z * z + x * y + y * z + z * x
            if tmp <= N:
                cnt[tmp-1] += 1

for i in range(N):
    print(cnt[i])
n = 10**4
k = [0]*10**4
for x in range(1,9):
    for y in range(1,9):
        for z in range(1,9):
            for i in range(n+1):
                if (x+y+z)**2 -(x*y+y*z+z*x) == i:
                    k[i-1] += 1
for i in range(int(input())):
    print(k[i])
n = int(input())
num = [0] * 10001
for i in range(1, 142):
    for j in range(1, 142):
        for k in range(1, 142):
            temp = i + j + k
            if temp % 2 == 0:
                if i + j > k and j + k > i and k + i > j:
                    temp2 = (i ** 2 + j ** 2 + k ** 2) // 2
                    if 0 <= temp2 <= 1000:
                        num[temp2] += 1
for i in range(1, n + 1):
    print(num[i])
import itertools

N = int(input())
lst = [0]*N
for x,y,z in itertools.product(list(range(1,int(N**0.5)+1)),repeat=3):
    val = x*x + y*y + z*z + x*y + y*z + z*x
    if val <= N-1:
        lst[val-1] += 1
print(*lst,sep="\n")
import numpy as np
N = int(input())
ans = np.zeros((10**4+5))
for i in range(1,51):
  for j in range(1,51):
    for l in range(1,51):
      f = (i+j)**2+(j+l)**2+(l+i)**2
      if((f%2==0) and (f<=2*10**4)):
        ans[int(f/2)] += 1

for i in range(1,N+1):
  print(int(ans[i]))
n = int(input())
for i in range(1,n+1):
    cnt = 0
    for x in range(1,32):
        for y in range(1,32):
            for z in range(1,32):
                if x**2 + y**2 + z**2 +x*y + y*z + z*x == i:
                    cnt += 1
    print(cnt)
import math
n=int(input())

for i in range(n):
    cnt=0
    sq=int(math.sqrt(n))
    for x in range(1,sq):
        for y in range(1,sq):
                for z in range(1,sq):
                    if x**2+y**2+z**2+x*y+y*z+z*x==i:
                        cnt+=1
    print(cnt)
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] = ls[t-1] + 1

for p in range(0,N):
    print(ls[p])
N = int(input())
 
for n in range(1,N+1):
  ans = 0
  check = False
  for x in range(1,42):
    for y in range(x,42):
      for z in range(y,42):
        if (x**2 + y**2 + z**2 + x*y + y*z + z*x) == n:
          if x == y and y == x and z == x:
            ans += 1
          elif x == y  or z == x or y == z:
            ans += 3
          elif x != y and y != z and z != x:
            ans += 6
  print(ans)
n = int(input())
for i in range(1, n+1):
    cnt = 0
    for x in range(1, 33):
        for y in range(1, 33):
            for z in range(1, 33):
                n = x*x + y*y + z*z + x*y + y*z + z*x
                if i == n:
                    cnt += 1
    print(cnt)
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
for i in range(N):
  print(ans[i])
import math
N = int(input())

enter = int(math.sqrt(N))
value_array = []
for x in range(7, enter+1):
  for y in range(7, enter+1):
    for z in range(7, enter+1):
      value_array.append(x**2 + y **2 + z ** 2 + x*y + y*z + z*x)

for i in range(1, N+1):
  print(value_array.count(i))
#!/usr/bin/env python3
n = int(input())
cnt = [0] * (1 + n)
for a in range(1, 33):
    for b in range(1, 33):
        for c in range(1, 33):
            k = a ** 2 + b ** 2 + c ** 2 + a * b + b * c + c * a
            if k > n:
                continue
            else:
                cnt[k] += 1
for i in range(1, n + 1):
    print(cnt[i])
from itertools import combinations_with_replacement
N = int(input())
ans = list(0 for _ in range(N))
for L in combinations_with_replacement(range(1, 6), 3):
  x = L[0]
  y = L[1]
  z = L[2]
  A = x**2 + y**2 + z**2 + x*y + y*z + z*x
  if A <= N:
    if x == y and y == z:
      ans[A - 1] += 1
    elif x == y or y == z or z == x:
      ans[A - 1] += 3
    else:
      ans[A - 1] += 6

for a in ans:
  print(a)
import math
N = int(input())
A = 8
for n in range(1, N+1):
    num = 0
    for i in range(1, A):
        for j in range(1, A):
            for k in range(1, A):
                if math.pow(i + j + k, 2) == (i * j + j * k + k * i) + n:
                    num += 1
    print(num)
N=int(input())
cnt=[0]*(N+1)
li=[]
for x in range(1,101):
    for y in range(1,101):
        for z in range(1,101):
            li.append(x**2+y**2+z**2+x*y+y*z+z*x)
for i in li:
    if i<=N:
        cnt[i]+=1
print(*cnt,sep='\n')
from collections import Counter
def main():
    n = int(input())
    ans = []
    for x in range(1, n):
        for y in range(1, n):
            for z in range(1, n):
                ans.append(x ** 2 + y ** 2 + z ** 2 + x * y + y * z + z * x)
    counter = Counter(ans)
    for i in range(1, n):
        print(counter[i])


if __name__ == '__main__':
    main()
N = int(input())

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

for x in range(1,100):
    for y in range(1,100-x):
        for z in range(1,100-x):
            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())
A = []
for i in range(1,46):
  for j in range(1,46):
    for k in range(1,46):
      A.append(i**2+j**2+k**2+i*j+i*k+j*k)
A = sorted(A)
B = [0]*N
for i in range(N):
  if A[i] < N:
    B[A[i]] += 1
C = B[1:]
[print(i) for i in C]
def func(x,y,z):
    return x**2+y**2+z**2+x*y+y*z+z*x

n = int(input())

ans = 0
arr = []
for x in range(1,100):
    for y in range(1,100):
        for z in range(1,100):
            arr.append(func(x,y,z))
for i in range(n):
    print(arr.count(i))
#import sys
#input = sys.stdin.readline

import math
from collections import defaultdict,deque
ml=lambda:map(int,input().split())
ll=lambda:list(map(int,input().split()))
ii=lambda:int(input())
ip=lambda:list(input())
ips=lambda:input().split()

"""========main code==============="""
n=ii()
d=defaultdict(int)
for i in range(1,90):
    for j in range(1,90):
        for k in range(1,90):
            w=i*i+j*j+k*k+i*j+i*k+j*k
            d[w]+=1
for i in range(1,n+1):
    print(d[i])
input_number = input()
for n in range(int(input_number)):
	n += 1
	count = 0
	for x in range(1,101):
		for y in range(101):
			for z in range(101):
				function = x*x+y*y+z*z+x*y+y*z+x*z
				if n == function:
					count += 1
	print(count)
N = int(input())
A = [0]*(N+1)
for x in range(1, 101):
    for y in range(1, 101):
        for z in range(1, 101):
            i = x**2 + y**2 + z**2 + x*y + y*z + z*x
            if i < N:
                A[i] += 1
for i in range(1, N+1):
    print(A[i])
n=int(input())
for i in range(n+1):
 ans=0
 for x in range(1,i):
  for y in range(1,i):
   for z in range(1,i):
    if i==x*x+y*y+z*z+x*y+x*z+y*z:
      ans+=1
 print(ans)
n=int(input())

ans=[0]*10001

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

for i in range(1,n):
    print(ans[i])
N = int(input())
ans = [0] * 10050

for x in range(1, 1105):
    for y in range(1, 1105):
        for z in range(1, 1105):

            f = x**2 + y**2 + z**2 + x*y + y*z + z*x

            if f < 10000:
                ans[f-1] = ans[f-1] + 1 

            if f > N:
                break
    if f > N:
        break

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

for x in range(1,101):
  for y in range(1,101):
    for z in range(1,101):
      a = x**2+y**2+z**2+x*y+y*z+z*x
      if a <= n:
        ans[a] += 1
for i in range(n+1):
  print(ans[i])
n = int(input())
li = [0]*n
for i in range(1,32):
    for j in range(1,32):
        for k in range(1,32): 
            if i**2 + j**2 + k**2 + i*j + j*k + k*i <= n:
                li[i**2 + j**2 + k**2 + i*j + j*k + k*i -1] += 1
for i in range(n):
    print(li[i])
import sys
import collections

n = int(sys.stdin.readline().rstrip("\n"))
l = []
for a in range(1,42):
    for b in range(1,42):
        for c in range(1,42):
            l.append(a**2+b**2+c**2+a*b+b*c+c*a)
c = collections.Counter(l)
for i in range(1,n+1):
    print(c[i])
# coding: utf-8

N = int(input())

ANS = [0] * (N+1)

for i in range(1,101):
    for j in range(1,101):
        for k in range(1,101):
            a = i**2 + j**2 + k**2 + i*j + j*k + k*i
            if a <= N:
                ANS[a] += 1

for a in ANS:
    print(a)
#!/usr/bin/env python3

def func(n):
    cnt = 0
    for x in range(1, 20):
        for y in range(1, 20):
            for z in range(1, 20):
                if x * x + y * y + z * z + x * y + y * z + z * x == n:
                    cnt += 1
    return cnt


def main():
    N = int(input())

    for i in range(1, N + 1):
        print(func(i))


if __name__ == "__main__":
    main()
n=int(input())
num=1
while True:
    if (num*num)*6>n:
        break
    num=num+1
num=2*num
d={}
for i in range(1,n+1):
    d[i]=0
for i in range(1,num+1):
    for j in range(1,num+1):
        for k in range(1,num+1):
            val=(i*i)+(j*j)+(k*k)+(i*j)+(j*k)+(k*i)
            if val>n:
                continue
            d[val]=d[val]+1
for i in range(1,n+1):
    print(d[i])
N = int(input())
f = {}

for x in range(1, 110):
	for y in range(1, 110):
		for z in range(1, 110):
			t = x*x+y*y+z*z+x*y+y*z+z*x
			f[t] = (f[t]+1 if t in f.keys() else 1)

for i in range(1, N):
    print(f[i] if i in f.keys() else 0)
N = int(input())
d = {i+1: 0 for i in range(N)}
for i in range(1, int(N**0.5)):
    for j in range(1, i+1):
        for k in range(1, j+1):
            n = i**2 + j**2 + k**2 + i*j + j*k + k*i
            if n > N:
                continue
            if len(set([i, j, k])) == 1:
                d[n] +=  1
            else:
                d[n] +=  3
for i in range(N):
    print(d[i+1])
N  = int(input())

from collections import defaultdict
ansd = defaultdict(int)

def calc(x,y,z):
    return x**2 + y**2 + z **2 + x*z + y*z + y*x

for x in range(1,45):
    for y in range(1, 45):
        for z in range(1,45):
            ansd[calc(x,y,z)] += 1

for k in range(1, N+1):
    print(ansd[k])
N = int(input().strip())
s=[]
n=int(N**(0.34)//1)
for a in range (1,n+1):
    for b in range(1,n+1):
        for c in range(1,n+1):
            s.append(a*a+b*b+c*c+a*b+b*c+c*a)
s.sort()

for l in range(1,N+1):
    print(s.count(l))
import math
n = int(input())

highest = int(math.sqrt(n))
print(highest)
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:
        continue
      else:
        l[cal-1] += 1
        
for i in range(len(l)):
  print(l[i])