peterverebics/CodeNet_Python_118 huggingface dataset:
#

import sys
input=sys.stdin.readline

def main():
    N=int(input())
    cnt=[0]*(8*N)
    r=int(N**0.5)+1
    for x in range(1,r):
        for y in range(1,r):
            for z in range(1,r):
                cnt[x*x+y*y+z*z+x*y+y*z+z*x]+=1
                
    for i in range(1,N+1):
        print(cnt[i])
    
    
if __name__=="__main__":
    main()
n = int(input())
l = [0] * (10**5)
N = 10**4

for i in range(1, 10**2+1):
    for j in range(1, 10**2+1):
        for k in range(1, 10**2+1):
            a = i*i + j*j + k*k + i*j + j*k + k*i
            l[a] += 1

for i in range(n):
    print(l[i+1])
import itertools

N = int(input())

tbl = [0]*N

for x in range(1,N):
    for y in range(1,N):
        for z in range(1,N):
            p = x*x + y*y + z*z + x*y + y*z + z*x
            if p > N:
                break
            tbl[p-1] += 1

for i in range(N):
    print(tbl[i])
n=int(input())
N=10**4+1
lst=[0]*N
s=0
for i in range(1,10**2+1):
    for j in range(1,10**2+1):
        for k in range(1,10**2+1):
            s=i**2+j**2+k**2+i*j+j*k+k*i
            if s<10**4+1:
                lst[s]+=1
for i in range(1,n+1):
    print(lst[i])
from collections import defaultdict
n = int(input())
d = defaultdict(lambda: 0)
for a in range(1, 10**2):
    for b in range(1, 10**2):
        for c in range(1, 10**2):
            t = a**2+b**2+c**2+a*b+b*c+c*a
            if t <= n:
                d[t] += 1
            else:
                break

for i in range(1, n+1):
    print(d[i])
n = int(input())
ans_list = [0 for i in range(10**6 + 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 + z*y + x*z
      ans_list[a] += 1
      
for i in range(1,n+1):
  print(ans_list[i])
def resolve():
    N = int(input())
    ans = [0 for _ in range(100005)]
    for x in range(1, 105):
        for y in range(1, 105):
            for z in range(1, 105):
                tmp = x * x + y * y + z * z + x * y + y * z + z * x
                if tmp < 10005:
                    ans[tmp] += 1
    
    for i in range(1, N+1):
        print(ans[i])
    return
 
resolve()
N = int(input())
C = {i:0 for i in range(1,N+1)}
for x in range(1,142):
    for y in range(1,142):
        for z in range(1,142):
            a = (x+y)**2+(y+z)**2+(z+x)**2
            if a%2==0 and a//2<=N:
                C[a//2] += 1
for i in range(1,N+1):
    print(C[i])
n = int(input())

table = [0] * 10001

for x in range(1, 101):
    for y in range(1, 101):
        for z in range(1, 101):
            k = (x * x) + (y * y) + (z * z) + (x * y) + (y * z) + (z * x)
            if k < 10001:
                table[k] += 1

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

counts = [0 for i in range(N+1)]

for i in range(1,150):
    for j in range(1,150):
        for k in range(1,150):
            now = i**2 + j**2 + k**2 + i*j + j*k + k*i
            try:
                counts[now] += 1
            except:
                pass
for i in range(1,N+1):
    print(counts[i])
N = int(input())
ans = [0 for _ in range(N)]
for z in range(1, 101):
  for y in range(1, 101):
    for x in range(1, 101):
      i = x**2 + y**2 + z**2 + x*y + y*z + z*x
      if i <= N:
        ans[i-1] += 1
        
for j in ans:
  print(j)
def main():
    import math

    N = int(input())
    
    ans_list = [0 for i in range(N)]
    
    for x in range(1, 101):
        for y in range(1, 101):
            for z in range(1, 101):

                left_eq = x * x + y * y + z * z + x * y + y * z + z * x
                if (left_eq <= N):
                    ans_list[left_eq - 1] += 1
    
    for i in range(N):
        print(ans_list[i])

if __name__ == '__main__':
    main()
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//2:
        break
      dp[a//2]+=1
for l in range(1,N+1):
  print(dp[l])
from collections import Counter
n = int(input())
ans_list = [0]*(10**6)
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
      ans_list[ans-1] += 1
for i in ans_list[:n]:
  print(i)
n = int(input())
a = [0 for i in range(n)]

for z in range(1, int(n**0.5+1)):
    for y in range(1, int(n**0.5+1)):
        for x in range(1, int(n**0.5+1)):
            i = x*x + y*y + z*z + x*y + y*z + x*z
            if i <= n: a[i-1] += 1 

for i in range(n):
    print(a[i])
N=int(input())
r=[0]*10000
for i in range(1,100):
    for j in range(1,100):
        for k in range(1,100):
            v = i*i + j*j + k*k + i*j + i*k + k*j
            if v <= 10000:
                r[v-1] += 1
for i in range(N):
    print(r[i])
#coding: UTF-8
import math
N = int(input())
#print(N)

ans = [0]*10001

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 <=10000:
        ans[a] += 1
    
for i in range(1,N+1):
  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):
        ans_list.append(x*x+y*y+z*z+x*y+y*z+z*x)

counter = collections.Counter(ans_list)
for i in range(1,n+1):
  print(counter[i])
n=int(input())
cnt=[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 tmp <=n:
                cnt[tmp]+=1


for i in range(1, n+1):
    print(cnt[i])
import math

N = int(input())
ans = [0] *(N+1)
a = int(math.sqrt(N)) + 1

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

for m in range(N) :
    print(ans[m+1])
# from pprint import pprint
# import math
# import collections
from numba import jit

N = int(input())

# n, k = map(int, input().split(' '))
# a = list(map(int, input().split(' ')))

@jit(cache=True)
def calc(x, y, z):
    return x ** 2 + y ** 2 + z ** 2 + x * y + y * z + z * x


res = [0] * 1000009

for x in range(1, 100):
    for y in range(1, 100):
        for z in range(1, 100):
            n = calc(x, y, z)
            res[n - 1] += 1

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

ans = [0] * (N+1)
for a in range(1, 105):
  if a*a > N :
    break
  for b in range(1, 105):
    if a*a + b*b > N:
      break      
    for c in range(1, 105):
      if a*a + b*b + c*c + a*b + b*c + c*a > N:
        break
      ans[a*a + b*b + c*c + a*b + b*c + c*a] += 1

for i in range(1, N+1):
  print(ans[i])
# vim: fileencoding=utf-8


def main():
    N = int(input())
    ans = [0] * N
    for x in range(1, 101):
        for y in range(1, 101):
            for z in range(1, 101):
                t = x ** 2 + y ** 2 + z ** 2 + x * y + y * z + z * x - 1
                if t >= len(ans):
                    break
                ans[t] += 1

    print(*ans)


if __name__ == "__main__":
    main()
nn=int(input())
nc = [0] * (nn + 1)
for x in range(1, 100):
  for y in range(1, 100):
    for z in range(1, 100):
      a = x * x + y * y + z * z + x * y + x * z + y * z
      if a > nn:
        break
      nc[a] += 1
for i in range(1, nn + 1):
  print(nc[i])
from collections import Counter
N = int(input())
N_ = int(N**0.5)+2

counter = Counter()
for x in range(1,N_):
    for y in range(1,N_):
        if N <= x**2+y**2+x*y:
            break
        for z in range(1,N_):
            tmp = x**2+y**2+z**2+x*y+y*z+z*x
            if N < tmp:
                break
            counter[tmp] += 1

for i in range(1,N+1):
    print(counter[i])
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):
            v = i*i+j*j+k*k+i*j+j*k+k*i;
            if v<10050:
            	ans[v]+=1
for i in range(n):
    print(ans[i+1])
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):
            v = i*i+j*j+k*k+i*j+j*k+k*i
            if v < 10050:
                ans[v] += 1
for i in range(n):
    print(ans[i+1])
from sys import stdin
from sys import setrecursionlimit
setrecursionlimit(10 ** 7)

n = int(stdin.readline().rstrip())
li = [0]*1000000

for i in range(1,101):
    for j in range(1,101):
        for k in range(1,101):
            li[i**2+j**2+k**2+i*j+j*k+k*i] += 1

for i in range(1,n+1):
    print(li[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):
            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])
def main():
    n = int(input())
    ans = [0] * n

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

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

main()
n=int(input())
squre=int(n**0.5)

A=[0 for _ in range(10**6)]
for x in range(1,squre+1):
    for y in range(1,squre+1):
        for z in range(1,squre+1):
            num=x**2+y**2+z**2+x*y+y*z+z*x
            A[num] +=1

for i in range(n):
    print(A[i+1])
n=int(input())
from collections import defaultdict
d=defaultdict(int)
for i in range(1,100):
    for j in range(1,100):
        for k in range(1,100):
            d[i**2+j**2+k**2+i*j+j*k+k*i]+=1
for i in range(1,n+1):
    print(d[i])
n=int(input())
a=[0]*10001
for i in range(1,101):
  for j in range(1,101):
    for k in range(1,101):
      v=i**2+j**2+k**2+i*j+j*k+k*i
      if v<10001:
        a[v]+=1
for m in range(n):
  print(a[m+1])
n = int(input())

a = [0] * 10010

# x,y,z
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 > n:
        continue
      a[x*x + y*y + z*z + x*y + y*z + z*x] += 1


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

ans = [0] * (N+1)

for x in range(1, 10**2):
    for y in range(1, 10**2):
        for z in range(1, 10**2):
            try:
                ans[(x+y+z)**2 - (x*y+y*z+z*x)] += 1
            except:
                pass

for i in range(1, N+1):
    print(ans[i])
from collections import defaultdict
d = defaultdict(int)
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*k+k*j+j*i
      d[a] += 1
      
n = int(input())
for i in range(1,n+1):
  print(d[i])
import math
n=int(input())
dp=[0]*(n+2)
sq=int(math.sqrt(n))
for x in range(1,sq+1):
    for y in range(1,sq+1):
        for z in range(1,sq+1):
            aa=(x*x+y*y+z*z+x*y+y*z+z*x)
            if aa<=n:
                dp[aa]+=1
for i in range(1,n+1):
    print(dp[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 > 10001:
                break

for i in range(N):
    print(o[i+1])
# C - XYZ Triplets
from collections import Counter


def main():
    N = int(input())
    calc = lambda x, y, z: x ** 2 + y ** 2 + z ** 2 + x * y + y * z + z * x
    lim = int(N ** 0.5) + 1
    cnt = Counter(
        calc(i, j, k)
        for i in range(1, lim + 1)
        for j in range(1, lim + 1)
        for k in range(1, lim + 1)
    )
    res = [cnt[i] for i in range(1, N + 1)]
    print("\n".join(map(str, res)))


if __name__ == "__main__":
    main()
N = int(input())
 
res = {i+1: 0 for i in range(N)}
 
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)):
      n = i**2 + j**2 + k**2 + i*j + j*k + k*i
      if n in res:
        res[n] += 1
for r in res.values():
  print(r)
N = int(input())

def cal(a,b,c):
    return(a**2+b**2+c**2 + a*b+b*c+c*a)

memo = [0]*(10**4)

for i in range(1,100):
    for j in range(1,100):
        for k in range(1,100):
            temp = cal(i,j,k)
            if temp <= 10**4:
                memo[temp-1] += 1
for i in memo[:N]:
    print(i)
#!/usr/bin/env python3

import math

n = int(input())

result = [0] * (n + 1)
border = 0
if n>=3:
    border = int(math.sqrt(n - 2))
for x in range(1, border):
    for y in range(1, border):
        for z in range(1, border):
            r = ((x + y) ** 2 + (y + z) ** 2 + (z + x) ** 2) // 2
            if r > n:
                break
            else:
                result[r] += 1

for num in result[1::]:
    print(num)
n = int(input())
ans = [0]*10001

for i in range(1, 101):
    for j in range(1, 101):
        for z in range(1, 101):
            aaa = i**2+j**2+z**2+i*j+j*z+z*i
            if aaa <= 10**4:
                ans[aaa] += 1
for i in range(n):
    print(ans[i+1])
n = int(input())
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] += 1
for i in range(n):
    print(count[i])
n = int(input())

ans = [0]*10001

for a in range(1,101):
    for b in range(1,101):
        for c in range(1,101):
            x = a**2+b**2+c**2+a*b+b*c+a*c
            if x<10001:
                ans[x] += 1
            else:
                break

for i in range(1,n+1):
    print(ans[i])
N = int(input())
ans = [0 for i in range(10 ** 4 + 1)]
for i in range(1,100):
    for i2 in range(1,100):
        for i3 in range(1,100):
            k = i**2 + i2 ** 2 + i3 ** 2 + i * i2 + i2 * i3 + i3 * i
            if k <= 10 ** 4:
                ans[k] += 1
for i in range(N):
    print(ans[i+1])
from collections import defaultdict
from sys import stdin


def main():
    input = lambda: stdin.readline()[:-1]
    N = int(input())

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

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


main()
# 初期入力
import sys
input = sys.stdin.readline
N = int(input())
ans ={i:0 for i in range(1,N +1)}
for x in range(1,101):
    for y in range(1,101):
        for z in range(1,101):
            a =x*x +y*y +z*z +x*y +y*z +z*x
            if a<= N:
                ans[a] +=1
for i in range(1,N+1):
    print(ans[i])
N = int(input())
cnt = [0] * (N+1)
for x in range(1, int(N**0.5)+1):
    for y in range(1, int(N**0.5)+1):
        fxy = x**2 + y**2 + x*y
        if N < fxy: break
        for z in range(1, int(N**0.5)+1):
            f = fxy + z**2 + y*z + z*x
            if N < f: break
            cnt[f] += 1
print(*cnt[1:], sep='\n')
from numba import jit

N = int(input())

@jit
def f():
    ret = [0] * 10001

    for i in range(1, 200):
        for j in range(1, 200):
            for k in range(1, 200):
                z = i**2 + j**2 + k**2 + i*j + j*k + k*i
                if z < 10001:
                    ret[z] += 1

    return ret


ans = f()

for x in range(1, N+1):
    print(ans[x])
n = int(input())
a = int(n**0.5+1)
ans = [0]*n
for x in range(1, a):
    for y in range(1, a):
        for z in range(1, a):
            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] += 1
[print(i) for i in ans]
n = int(input())
ans = [0 for i in range(10050)]
for x in range(1, 105):
    for y in range(1, 105):
        for z in range(1, 105):
            f = x**2 + y**2 + z**2 + x*y + y*z + z*x
            if f < 10050:
                ans[f] += 1
for i in range(n):
    print(ans[i+1])
n=int(input())
l=[0]*(n)
for x in range(1,101):
    for y in range(1,101):
        for z in range(1,101):
            k=x**2+y**2+z**2+x*y+x*z+y*z
            if k<=n:
                l[k-1]+=1
print(*l,sep="\n")
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())
n_np = np.zeros(105**3)
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
            n_np[idx-1] += 1
for i in range(N):
    print(int(n_np[i]))
#!/usr/bin/env python3
n = int(input())
cnt = [0] * (1 + n)
for a in range(1, 100):
    for b in range(1, 100):
        for c in range(1, 100):
            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 collections import defaultdict

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

N = int(input())

i = 1
dic = defaultdict(lambda: set())
dic[6].add((1,1,1))

while i <= N:
  if i in dic:
    print(len(dic[i]))
    for trio in dic[i]:
      x,y,z = trio
      dic[f(x,y,z+1)].add((x,y,z+1))
      dic[f(x,y+1,z)].add((x,y+1,z))
      dic[f(x+1,y,z)].add((x+1,y,z))
  else:
    print(0)
  i += 1
n = int(input())
a = [0 for i in range(10000)]
for x in range(1,100):
    for y in range(1,100):
        for z in range(1,100):
            w = (x+y+z)**2-z*x-z*y-x*y
            if w <= 10000:
                a[w-1] += 1
for i in range(n):
    print(a[i])
import math
import collections

n=int(input()) 
c = []
m = int(math.sqrt(n))

for x in range(1,m+1):
    for y in range(1,m+1):
        for z in range(1,m+1):
            tmp = x*x + y*y + z*z + x*y + y*z + z*x
            c.append(tmp)

cc = collections.Counter(c)
#print(cc)

for i in range(1,n+1):
    if i in cc:
        print(cc[i])
    else:
        print(0)
M = 10**2 + 1
N = int(input())
L = [0 for _ in range(M**2+10)]
for i in range(1,M):
    for j in range(1,M):
        for k in range(1,M):
            n = i**2 + j**2 + k**2 + i*j + j*k + k*i
            if n>N:
                break
            L[n] += 1
for i in range(1,N+1):
    print(L[i])
# coding:utf-8
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):
            v = i*i+j*j+k*k+i*j+j*k+k*i
            if v < 10050:  #vはnを表していて、vのところで与式を満たす
                ans[v] += 1
for i in range(n):
    print(ans[i+1])
n = int(input())
ans = [0 for _ in range(10001)]
for i in range(1,100):
    for j in range(1,100):
        for k in range(1,100):
            v = i**2 + j**2 + k**2 + i*j + j*k + k*i
            if v < 10001:
                ans[v] += 1

for i in range(n):
    print(ans[i+1])
from sys import stdin
import sys
import math
import random
from decimal import Decimal
import itertools as it

N = int(input())
# for i in range(1,N+1):
f = [0 for i in range(N)]
# print(f)
for x in range(1, 101):
    x2 = x**2
    for y in range(1, 101):
        y2 = y**2
        for z in range(1, 101):
            a = x2+y2+z**2+x*y+y*z+x*z
            if a <= N:
                f[a-1] += 1
            else:
                break
for i in f:
    print(i)
# -*- coding: utf-8 -*-
 
def score(x,y,z):
    return pow(x,2)+pow(y,2)+pow(z,2)+(x*y)+(y*z)+(z*x)

N = int(input())

num = [0 for i in range(N)]
# x,y,zは高々10^2
for x in range(1,100):
    for y in range(1,100):
        for z in range(1,100):
            value = score(x,y,z)
            if value <= N:
                num[value-1] += 1

for n in num:
    print(n)
N = int(input())
cnt = [0] * (10 ** 4 + 1)
for x in range(1, 3333):
    for y in range(1, 3333):
        for z in range(1, 3333):
            check = x ** 2 + y ** 2 + z ** 2 + x * y + y * z + z * x
            if check > 10000:
                break
            else:
                cnt[check - 1] += 1
for i in range(N):
    print(cnt[i])
n = int(input())
ans  = [0 for i in range(10**5)]
for x in range(1,100):
    for y in range(1,100):
        for z in range(1,100):
            ans[x**2 + y**2 + z**2 + x*y + y*z + z*x] += 1

for i in range(1,n+1):
    print(ans[i])
import itertools
n = int(input())

lst = [0] * 10 ** 5
combs = list(itertools.combinations_with_replacement([_ for _ in range(1, 100)], 3))

st = {1:1, 2:3, 3:6}
for _ in combs:
    x, y, z = _[0], _[1], _[2]
    num = x ** 2 + y ** 2 + z ** 2 + (x * y) + (y * z) + (z * x)
    lst[num-1] += st[len(set(_))]

for _ in range(n):
  print(lst[_])
N = int(input())
L = [0]*N
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+X*Z+Y*Z
            if Num>N: break
            else: L[Num-1] += 1
print('\n'.join(str(X) for X in L))
n = int(input())
a =[0]*10001

for x in range(1,100,1):
    for y in range(1,100,1):
        for z in range(1,100,1):
            i = x*x+y*y+z*z+x*y+y*z+z*x
            if i <=10000:
                a[i]=a[i]+1
for i in range(1,n+1,1):
    print(a[i])
N = int(input())
ans = [0 for _ in range(N)]
for x in range(1, 1000):
    if x**2 > N:
        continue
    for y in range(1, 1000):
        if x**2 + y**2 > N:
            break
        for z in range(1, 1000):
            n = x**2 + y**2 + z**2 + x*y + y*z + z*x
            if n <= N:
                ans[n-1] += 1
            if n > N:
                break
for a in ans:
    print(a)
def calc(x, y, z):
    return x**2 + y**2 + z**2 + x*y + y*z + z*x

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

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

b = [str(i) for i in ans]
print('\n'.join(b))
n = int(input())
f = []
for _ in range(10000):
    f.append(0)
for x in range(1, 101):
    for y in range(1, 101):
        for z in range(1, 101):
            id = x*x + y*y + z*z + x*y + y*z + z*x
            if id <= 10000:
                f[id-1] += 1
for i in range(n):
    print(f[i])
n = int(input())
ans = [0 for _ in range(10050)]
for i in range(1, 101):
    for j in range(1, 101):
        for k in range(1, 101):
            v = i*i+j*j+k*k+i*j+j*k+k*i;
            if v < 10050:
                ans[v] += 1
for i in range(n):
    print(ans[i+1])
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):
            v = i*i+j*j+k*k+i*j+j*k+k*i
            if v<10050:
                ans[v]+=1

for i in range(n):
    print(ans[i+1])
n=int(input())
d=[0 for i in range(10**7)]
    
def jud(l):
    if len(set(l))==3:
        return 6
    if len(set(l))==2:
        return 3
    if len(set(l))==1:
        return 1

for i in range(1,101):
    for j in range(i,101):
        for k in range(j,101):
            l=[i,j,k]
            p=i**2+j**2+k**2+i*j+j*k+k*i
            d[p-1]+=jud(l)

for i in range(n):
    print(d[i])
## coding: UTF-8
N = int(input())

ans = [0] * (10**4+10)
for x in range(1, 101):
    for y in range(1, 101):
        for z in range(1, 101):
            #print(x, y, z)
            p = x*x + y*y + z*z + x*y + y*z + z*x
            if(p < 10**4+10):
                ans[p] += 1

#print(ans[:30])
for i in range(N):
    print(ans[i+1])
# coding: utf-8
import math
import itertools

n = int(input())

ans = [0] * n

for x, y, z in itertools.product(range(1, int(math.sqrt(n))), range(1, int(math.sqrt(n))), range(1, int(math.sqrt(n)))):
    idx = x**2 + y**2 + z**2 + x*y + y*z + z*x
    if idx <= n:
        ans[idx-1] += 1

print(*ans, sep="\n")
N = int(input())
l = [0] + [0] * N
for x in range(1, 101):
    for y in range(1, 101):
        for z in range(1, 101):
            temp = x**2 + y**2 + z**2 + x * y + y * z + z * x
            if temp <= N:
                l[temp] += 1

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

for i in range(1, 110):
    for j in range(1, 110):
        for k in range(1, 110):
            tmp = i ** 2 + j ** 2 + k ** 2 + i * j + j * k + k * i
            if tmp <= n:
                ans[tmp] += 1
for i in range(1, n + 1):
    print(ans[i])
n = int(input())

from collections import defaultdict
d = defaultdict(int)

ul=int(n**0.5)

for i in range(1,ul):
  for j in range(1,ul):
    for k in range(1,ul):
      d[i**2+j**2+k**2+i*j+j*k+k*i]+=1
for j in range(1,n+1):
  print(d.get(j,0))
#  print(d[j] if d[j] else 0)