peterverebics/CodeNet_Python_118 huggingface dataset:
from math import sqrt
N = int(input())
ans = [0] * (N+1)

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

for a in ans:
    print(a)
a = int(input())
b = round(a**0.5) + 1
print(b)
x = []
for i in range(1,b):
    for j in range(1,b):
        for k in range(1,b):
            l = i**2 + j**2 + k**2 + i*j + j*k + k*i
            x.append(l)
print(x)

t = [0] * a
for i in range(0,len(x)):
    if x[i] <= a:
        t[x[i]-1] = t[x[i]-1] + 1
print(t,len(t))
for i in t:
    print(i)
def f(n):
    cnt = 0
    for x in range(1,3):
        for y in range(1, 3):
            for z in range(1,3):
                if (((x**2 )+(y**2) +(z**2) +x*y +y*z+ z*x)) == n:
                    cnt += 1

    return cnt
N=int(input())
for i in range(1,N+1):
    print(f(i))
from itertools import product

n = int(input())

for num in range(1, n+1):
    count = 0
    prod = product([1,2,3], repeat=3)
    for i in prod:
        x = i[0]
        y = i[1]
        z = i[2]

        if x**2 + y**2 + z**2 +x*y + y*z + z*x == num:
            count += 1
    print(count)
N = int(input())
ans = [0] * (N)
for x in range(1, 101):
    for y in range(1, 101):
        for z in range(1, 101):
            n = x ** 2 + y ** 2 + z ** 2 + x * y + y * z + z * x - 1
            if n <= N:
                ans[n-1] += 1
for i in ans:
    print(i)
from math import sqrt
N = int(input())

ans = [0 for _ in range(N)]

num_m = (N-4)//2

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


print(*ans, sep="\n")
import math
N = int(input())
zeros = [0 for i in range(N+1)]
for x in range(1,int(math.sqrt(N))+1):
    for y in range(1,int(math.sqrt(N))+1):
        for z in range(1,int(math.sqrt(N))+1):
            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())

ans = [0 for i in range(n)]
for x in range(1,41):
    for y in range(1,41):
        for z in range(1,41):
            n_2 = x ** 2 + y ** 2 + z ** 2 + x*y + x*z + y*z
            if n_2 > int(len(ans)):
                continue
            ans[n_2-1] += 1

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

highest = int(math.sqrt(n))
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])
n = int(input())
ans = [0 for _ in range(n+1)]
def calc(n):
    for x in range(1, int(n**0.5)):
        for y in range(1, int(n**0.5)):
            for z in range(1, int(n**0.5)):
                v = x**2 + y**2 + z**2 + x*y + y*z + z*x
                if v < n+1:
                    ans[v] += 1

calc(n)
for i in range(1, n):
    print(ans[i+1])
from itertools import product

n = int(input())
pro = product([x for x in range(1,7)],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)
import itertools
import pprint

n = int(input())

result = [0]*15000
maxnum = 50
xlist, ylist, zlist = range(1, maxnum), range(1, maxnum), range(1, maxnum)
p = itertools.product(xlist, ylist, zlist)
for each in p:
    x, y, z = each
    result[x*x+y*y+z*z+x*y+y*z+z*x] += 1

print('\n'.join(str(each) for each in result[1:n+1]))
n=int(input())
for i in range(n):
 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] * (n+1)


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


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

for a in ans:
    print(a)
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, 30), 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)
N = int(input())
 
for n in range(1,N+1):
  ans = 0
  check = False
  for x in range(1,min(n,42)):
    for y in range(x,min(n,42)):
      for z in range(y,min(n,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)
#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+2),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())
x = int(n**0.5)+1
cnt = [0]*(n+1)
for i in range(1,x):
    for j in range(1,x):
        for k in range(1,x):
            res = i**2+j**2+k**2+i*j+j*k+k*i
            if res < n: cnt[res] += 1
for i in range(1,n+1): print(cnt[i])
N = int(input())

from collections import defaultdict
res = defaultdict(list)

# 解の候補を生成
# x,y,zそれぞれに対して√1000位までやればよさそう
limit = int(1000**.5)+1
for x in range(1, limit):
    for y in range(1, limit):
        for z in range(1, limit):
            f = x**2 + y**2 + z**2 + x*y + y*z + z*x
            res[f].append((x,y,z))

for i in range(1, N+1):
    print(len(res[i]))
N = int(input())

res = [0] * N


for x in range(1, 102):
    for y in range(1, 102):
        for z in range(1, 102):
            t1 = (x + y + z) ** 2

            if t1 > 11000:
                break

            n = t1 - x * y - y * z - z * x - 1
            
            if n >= N:
                break
            res[n] += 1

for o in res:
    print(o)
N = int(input())

from collections import defaultdict
res = defaultdict(list)

# 解の候補を生成
# x,y,zそれぞれに対して√1000位までやればよさそう
limit = int(1000**.5)+1
for x in range(1, limit):
    for y in range(1, limit):
        for z in range(1, limit):
            f = x**2 + y**2 + z**2 + x*y + y*z + z*x
            res[f].append((x,y,z))

for i in range(1, N+1):
    # 重複組み合わせは除外する
    print(len(set(res[i])))
n = int(input())
ans = [0] * (n + 1)
for x in range(1, 33):
    for y in range(1, 33):
        for z in range(1, 33):
            if x ** 2 + y ** 2 + z ** 2 + x * y + y * z + z * x < n:
                ans[x ** 2 + y ** 2 + z ** 2 + x * y + y * z + z * x] += 1

for i in range(1, n + 1):
    print(ans[i])
n = int(input())
for i in range(1, n+1):
    cnt = 0
    for x in range(1, 34):
        for y in range(1, 34):
            for z in range(1, 34):
                n = x*x + y*y + z*z + x*y + y*z + z*x
                if i == n:
                    cnt += 1
    print(cnt)
n = int(input())
c = [0]*10001

for x in range(1,101):
    if(x > n):
        break
    for y in range(x,101):
        for z in range(y,101):
            p = int(((x+y)*(x+y) + (y+z)*(y+z) + (z+x)*(z+x))/2)
            if(n >= p):
                c[p] += 1

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

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

for i in ans:
    print(i)
N = int(input())
num = [0]*N
for i in range(1,10**2 + 1):
    for j in range(1,10**2 + 1):
        for k in range(1,10**2 + 1):
            ans = i**2 + j**2 + k**2 + i*j + j*k + k*i
            if ans < N:
                num[ans] += 1
for i in range(N):
    print(num[i])
#coding: UTF-8
import math
N = int(input())
#print(N)

for i in range(5):
  print(0)

for i in range(6,N+1):
  cnt = 0
  m = int(math.sqrt(i))
  #平方根までやればよい
  for x in range(1,m):
    for y in range(1,m):
      for z in range(1,m):
        a = (x+y+z)**2 -x*y -y*z - z*x
        if a == i:
          cnt += 1
  print(cnt)
N=int(input())
for h in range(1,N+1):
    num=0
    for i in range(1,h-6):
        for j in range(1,h-6):
            for k in range(1,h-6):
                if i**2+j**2+k**2+i*j+j*k+k*i==h:
                    num+=1
    print(num)
N=int(input())
C=[0]*(2*N + 1)
l=10**2
for i in range(l):
    for j in range(l):
        for k in range(l):
            x=i+1
            y=j+1
            z=k+1
            s=(x+y)*(x+y)+(x+z)*(x+z)+(z+y)*(z+y)
            if(s<2*N):
                C[s]+=1
for i in range(N):
    print(C[2*(i+1)])
N = int(input())
#A = list(map(int, input().split()))

ans = [0 for _ in range(N)]
for x in range(1, 151):
  for y in range(1, 151):
    for z in range(1, 151):
      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())
L = [0 for i in range(10**4+1)]
for x in range(1, 45):
    for y in range(1, 45):
        for z in range(1, 45):
            r = x**2 + y**2 + z**2 + x*z + x*y + z*y
            if r <= 10000:
                L[r] += 1
for i in range(1, n+1):
    print(L[i])
n = int(input())
f = [0]*15000
for x in range(1,50):
    for y in range(1,50):
        for z in range(1,50):
            f[x**2+y**2+z**2+x*y+y*z+z*x-1]+=1
            z+=1
        y+=1
    x+=1
for i in range(n):
    print(f[i])
import math
n = int(input())

ans = [0]*n
for i in range(n):
	for x in range(1,math.floor(math.sqrt(n))):
		for y in range(1,math.floor(math.sqrt(n))):
			for z in range(1,math.floor(math.sqrt(n))):
				if pow(x,2) + pow(y,2) + pow(z,2) + x*y + y*z + z*x == i:
					ans[i] += 1
for i in range(n):
	print(ans[i])
import math
n = int(input())
n_2 = math.floor((n)**(1/2))
cnt = 0
for n in range(1,n+1):
  cnt = 0
  for x in range(1,n_2 +1):
    for y in range(1, n_2 +1-x):
      for z in range(1, n_2 +1-y-x):
        if x+y+z == ((n + x*y + y*z + z*x)**(1/2)):
          cnt +=1
  print(cnt*3)
n = int(input())

nums = [0]*n
m = n//6
for i in range(1,m+1):
  if i**2//6 >= n: continue
  for j in range(i, m+1):
    if i**2 + j**2 + i*j >= n//2: break
    for k in range(j, m+1):
      t = i**2 + j**2 + k**2 + i*j + j*k + i*k
      if t <= n:
        if i == j and i == k: nums[t-1] += 1
        else: nums[t-1] += 3
        
print(*nums, sep="\n")
n=int(input())
j=10501
l=[0 for i in range(j)]
for x in range(1,101):
  for y in range(1,101):
    for z in range(1,101):
      v=x*x+y*y+z*z+y*x+x*z+z*y
      if(v<j):
        l[v]+=1
for i in range(n+1):
  print(l[i+1])
from itertools import product

N = int(input())

cnt = [0]*10000000

for x in range(1,51):
    for y in range(1,51):
        for z in range(1,51):
            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())
A=[0]*(n+1)
a=round(n**0.5)+1
for x in range(1,a):
  for y in range(1,a):
    for z in range(1,a):
      b=x*x+y*y+z*z+x*y+y*z+z*x
      if b<n:
        A[b]+=1
for i in range(1,n+1):
  print(A[i])
def main():
    N = int(input())
    ans = [0 for i in range(N + 1)]

    for x in range(1, 50):
        for y in range(1, 50):
            for z in range(1, 50):
                s = x**2 + y**2 + z**2 + x*y + y*z + z*x

                if 1 <= s <= N:
                    ans[s] += 1

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

if __name__ == "__main__":
    main()
n = int(input())
ans = [0 for i in range(10100)]
for x in range(1, 101):
    for y in range(1, 101):
        for z in range(1, 101):
            if x*x+y*y+z*z+x*y+y*z+z*x < 10000:
                ans[x*x+y*y+z*z+x*y+y*z+z*x-1] += 1

for i in range(n):
    print(ans[i])
import math

def main():
    N = int(input())
    ans = [0]*(N+1)

    rn = math.ceil(math.sqrt(N))

    for x in range(1,rn):
        for y in range(1,rn):
            for z in range(1,rn):
                k = x**2 + y**2 + z**2 + x*y + y*z + z*x
                if k <= N:
                    ans[k-1] += 1
    
    for i in range(len(ans)):
        print(ans[i])
    
main()
N = int(input())

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

  print(answer)
n = int(input())
ans = []

for i in range(n):
  cnt = 0
  for x in range(1, 100):
    for y in range(1, 100):
      for z in range(1, 100):
        if (x + y) ** 2 + (y + z) ** 2 + (z + x) ** 2 == i * 2:
          cnt += 1
  ans.append(cnt)
for i in range(n):
  print(ans[i])
import sys
import numpy as np

N = int(input())

o = [0] * (N+1)
for i in range(1, 100):
    for j in range(1, 100):
        for k in range(1, 100):
            n = int(i*i + j*j + k*k + i*j + j*k + k*i)
            if n > 1001:
                break
            if n < (N+1):
                o[n] += 1

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

memo = {}
for i in range(1,n//2+1):
  for j in range(1,n//2+1-i):
    for k in range(1,n//2+1-i-j):
      key = str(i)+str(j)+str(k)
      memo[key] = i**2+j**2+k**2+i*j+j*k+k*i

print(memo)
val = [num for num in memo.values()]

for i in range(1,n+1):
  print(val.count(i))
n = int(input())
ans = []

for i in range(1, n + 1):
  cnt = 0
  for x in range(1, 35):
    for y in range(x,35):
      for z in range(y, 100):
        if (x + y) ** 2 + (y + z) ** 2 + (z + x) ** 2 == i * 2:
          if x != y and y != z and z != x:
            cnt += 6
          elif x == y == z:
            cnt += 1
          else:
            cnt += 3
  ans.append(cnt)
for j in range(n):
  print(ans[j])
#!/usr/bin/env python3

def func(n):
    cnt = 0
    N = min(n, 18)
    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 == 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())

nums = [0]*n
m = int(n**0.5)+1
for i in range(1,m+1):
  for j in range(i, m+1):
    for k in range(j, m+1):
      t = i**2 + j**2 + k**2 + i*j + j*k + i*k
      if t <= n:
        if i == j and i == k: nums[t-1] += 1
        else: nums[t-1] += 3

print(*nums, sep="\n")
N=int(input())
ans=[0]*N
hani=int(N**(0.5))+1
for i in range(1,hani):
    for j in range(1,hani):
        for k in range(1,hani):
            v=i**2+j**2+k**2+i*j+j*k+k*i
            if(v<N):
                ans[v-1]=ans[v-1]+1
for i in ans:
    print(i)
n=int(input())
for i in range(1,n+1):
    lim=int(i**(0.5))//int(6**(0.5))
    ans=0
    for x in range(1,lim+1):
        for y in range(1,lim+1):
            for z in range(1,lim+1):
                if x**2+y**2+z**2+x*y+y*z+z*x==i:
                    ans+=1
                if x**2+y**2+z**2+x*y+y*z+z*x>i:
                    break
    print(ans)
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)
n = int(input())
for i in range(1,n+1):
	cnt = 0
	for x in range(1,30):
		for y in range(1,30):
			for z in range(1,30):
				if x**2 + y**2 + z**2 + (x*z) + (x*y) + (y*z) == i:
					cnt += 1
	print(cnt)
n = int(input())
answer_list = []
for x in range(1, 99, 1):
    for y in range(1, 99, 1):
        for z in range(1, 99, 1):
            formula = (x+y+z)**2 - (x*y + y*z + z*x)
            if formula >= n:
                continue
            else:
                answer_list.append(formula)
answer_list = sorted(answer_list)
for i in range(0, n+1, 1):
    print(answer_list.count(i))
n = int(input())
l = []
ls = [0]*(n+1)

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

for i in range(1,int(n**0.5)):
    for j in range(1,int(n**0.5)):
        for k in range(1,int(n**0.5)):
            a = cul(i,j,k)
            if a < n:
                ls[a] += 1
for i in ls[1::]:
    print(i)
N = int(input())
num = [0]*N
for i in range(1,10**2):
    for j in range(1,10**2):
        for k in range(1,10**2):
            ans = i**2 + j**2 + k**2 + i*j + j*k + k*i
            if ans < N:
                num[ans] += 1
for i in range(N):
    print(num[i])
import sys
import numpy as np

N = int(input())

o = [0] * (N+1)
for i in range(1, 100):
    for j in range(1, 100):
        for k in range(1, 100):
            n = int( ((i+j) * (j+k)) + i*i + k*k)
            if n < (N+1):
                o[n] += 1
            if n > 1001:
                break

for i in range(N):
    print(o[i+1])
import itertools
n = int(input())
N = 1
while N**2 < n:
    N += 1
if N ** 2 > n: N-=1
ans = [0] * n

for x,y,z in itertools.combinations_with_replacement(list(range(1,N+1)), 3):
    a = x**2+y**2+z**2 + x*y+y*z+z*x
    if a > n: continue
    if x==y==z: b = 1
    elif x==y or x==z or y==z: b = 3
    else: b = 6
    ans[a-1] = b

for i in ans: print(i)
n = int(input())
arr = [0] * (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*z + y*z + x*z
      if a<= n:
        arr[a] += 1
        
for i in range(1,n+1):
    print(arr[i])
n = int(input())
#print(n)

ptn = [0 for _ in range(20000)]

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

for i in range(1, n+1):
    print(ptn[i])
n = int(input())
for i in range(1,n+1):
	cnt = 0
	for x in range(1,14):
		for y in range(1,14):
			for z in range(1,14):
				if x**2 + y**2 + z**2 + (x*z) + (x*y) + (y*z) == i:
					cnt += 1
	print(cnt)
N=int(input())
sum=[0]*N
for x in range(1,N):
    for y in range(1,N):
        for z in range(1,N):
            a=x*x+y*y+z*z+x*y+y*z+x*z
            if a<=N:
                sum[a-1]=sum[a-1]+1

for i in sum:
    print(sum)
N = int(input())
cnt = 0
for i in range(1, N+1):
  for x in range(100):
    for y in range(100):
      for z in range(100):
        if (x+y)^2 + (y+z)^2 + (z+x)^2 == 2*i:
          cnt += 1
print(cnt)
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):
                
                if i == ((x+y+z)**2 - z*(x+y) - (x*y)):
                    cnt += 1

    print(cnt)
n=int(input())

ans=[0]*(n+1)

for x in range(1,51):
    for y in range(1,51):
        for z in range(1,51):
            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+1):
    print(ans[i])
import itertools

N = int(input())
n = int(N ** (1/2))
C = itertools.combinations_with_replacement(range(1, n + 1), 3)
ans = [0 for i in range(N)] 

x, y, z = 1, 1, 1

def check(c):
  x, y, z = c
  global N
  t = x * x + y * y + z * z + x * y + y * z + z * x
  if t > N:
    return
  if x == y and y == z:
    ans[t - 1] += 1
  elif x == y and y != z or y == z and z != x or z == x and x != y:
    ans[t - 1] += 3
  else:
    ans[t - 1] += 6

for c in list(C):
  check(c)
print(ans)
import math
N = int(input())
for i in range(1, N+1):
    cnt = 0
    for x in range(1, int(math.pow(i, 1.0/3.0))):
        for y in range(1, int(math.pow(i, 1.0/3.0))):
            for z in range(1, int(math.pow(i, 1.0/3.0))):
                if ((x+y+z)**2)-x*y-y*z-z*x == i:
                    cnt += 1
    print(cnt)
import math
N = int(input())

for n in range(1,N):
    r_n = math.floor(math.sqrt(N))
    count = 0
    for x in range(1,r_n):
        for y in range(1,r_n):
            for z in range(1,r_n):
                if (x*x + y*y + z*z + x*y + y*z + z*x) == n:
                    count+=1
    print(count)
n = int(input())
f = [0]*48600
for x in range(1,90):
    for y in range(1,90):
        for z in range(1,90):
            f[x**2+y**2+z**2+x*y+y*z+z*x-1]+=1
for i in range(n):
    print(f[i])
import numpy as np

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

n=int(input())

a=[ff(i,j,k) for i in range(1,42) for j in range(1,42) for k in range(1,42)]
an=np.array(a)

for i in range(1,n+1):
    print(np.count_nonzero(an==(i)))
import math
import itertools
n=int(input())

a=[0]*n
b=[]
for i in range(1,35):
    b.append(i)
lst=list(itertools.product(b,repeat=3))

for i in range(len(lst)):
    x,y,z=lst[i][0],lst[i][1],lst[i][2]
    c=(x+y+z)**2-(x*y+y*z+z*x)
    if c<=n:
        a[c-1]+=1

for i in range(n):
    print(a[i])
from itertools import combinations_with_replacement
N = int(input())

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

memo = {}
for x,y,z in combinations_with_replacement(range(1, 43), 3):
    l = len(set([x,y,z]))
    num = calc(x,y,z)
    if l == 1:
        memo[num] = 1
    elif l == 2:
        memo[num] = 3
    else:
        memo[num] = 6

for i in range(1, N+1):
    print(memo.get(i, 0))
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
            s += x*y + y*z + z*x
            if s > N:
                continue
            ans[s] += 1

for i in ans:
    print(i)
a = int(input())
b = round(a**0.5) + 1
print(b)
x = []
for i in range(1,b):
    for j in range(1,b):
        for k in range(1,b):
            l = i**2 + j**2 + k**2 + i*j + j*k + k*i
            x.append(l)

t = [0] * a
for i in range(0,len(x)):
    if x[i] <= a:
        t[x[i]-1] = t[x[i]-1] + 1

for i in t:
    print(i)
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from collections import defaultdict


def main():
    n_in = int(input().strip())

    n_to_xyz = defaultdict(set)
    for x in range(1, 70):
        for y in range(1, 70):
            for z in range(1, 70):
                n = x * x + y * y + z * z + x * y + y * z + z * x
                n_to_xyz[n].add((x, y, z))

    for i in range(1, n_in + 1):
        print(len(n_to_xyz[i]))


if __name__ == '__main__':
    main()
N = int(input())
result = [0 for x in range(1000000)]

l = 0
p=0
for i in range(1,100):
    if p>10000:
        break
    for j in range(1,100):
        if p>10000:
            break
        for k in range(1,100):
            p = int(i*i+i*j+j*j+j*k+k*k+k*i )
            if p>10000:
                break
            result[l] = p
            l+=1
for i in range(1,N+1):
    print(result.count(i))
N = int(input())

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


for nn in range(N):
    a = 0
    for x in range(1, n + 1):
        for y in range(1, n + 1):
            for z in range(1, n + 1):
                if x**2 + y**2 + z**2 + x*y + y*z + z*x == nn:
                    a += 1
    print(a)
n = int(input())
arr = [0 for x in range(n)]
sq = int(n ** 0.5)
for i in range(1, sq):
    for j in range(1, sq):
        for k in range(1, sq):
            ans = i ** 2 + j ** 2 + k ** 2 + i * j + j * k + k * i
            if ans < n:
                arr[ans-1] += 1
for i in arr:
    print(i)
import sys
read = sys.stdin.read
readline = sys.stdin.readline
readlines = sys.stdin.readlines

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

    f = [0] * (N+1)
    for x in range(1,50):
        for y in range(1,50):
            for z in range(1,50):
                tmp = x**2 + y**2 + z**2 + x*y + y*z + z*x
                if tmp <= N:
                    f[tmp] += 1
    
    print("\n".join(map(str, f[1:])))


if __name__ == "__main__":
    main()
n=int(input())
a=[0]*10050
for i in range(105):
  for j in range(105):
    for k in range(105):
      v=i**2+j**2+k**2+i*j+j*k+k*i
      if v<10050:
        a[v]+=1
for m in range(n):
  print(a[m+1])