peterverebics/CodeNet_Python_118 huggingface dataset:
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(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
            ans[idx-1] += 1
for i in range(N):
    print(ans[i])
#!/usr/bin/env python3
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):
            w = x ** 2 + y ** 2 + z ** 2 + x * y + y * z + z * x
            if w <= n:
                ans[w] += 1
for i in range(1, n + 1):
    print(ans[i])
n = int(input())

cnt = [set() for i in range(n+1)]

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

for x in range(1, n+1):
    if f(x,1,1) > n: break
    for y in range(1, n+1):
        if f(x,y,1) > n: break
        for z in range(1, n+1):
            t = f(x,y,z)
            if t > n: break
            cnt[t].add((x,y,z))

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

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

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 + z * x
            if ans <= n:
                arr[ans - 1] += 1

for i in range(n):
    print(arr[i])
cnt=[0] * 11000
n = int(input())

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

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

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

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

for i in range(n):
    print(arr[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])
import math
N = int(input())
ans = [0]*(N+1)
owari = math.sqrt(N)
owari = math.ceil(owari)
for x in range(1, owari):
    a = x*x
    for y in range(1, owari):
        b = y*y
        c = x*y
        for z in range(1, owari):
            hantei = z*(z+x+y)+a+b+c
            if hantei > N:
                break
            ans[hantei] += 1

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

ans = [0 for _ in range(10**4+50)]

for x in range(1, 105):
    for y in range(1, 105):
        for z in range(1, 105):
            tmp = x**2 + y**2 + z**2 + x*y + y*z + z*x
            if tmp < 10**4+50:
                ans[tmp] += 1

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

N = int(input())
MAX = min(math.ceil(math.sqrt(N)),101)

d = {}
for i in range(10001):
    d[i] = 0

for x in range(1,MAX):
    for y in range(1,MAX):
        for z in range(1,MAX):
            tmp = x**2 + y**2 + z**2 + x*y + y*z + z*x
            if tmp in d.keys():
                d[tmp] += 1
            else:
                d[tmp] = 1

for i in range(1,N+1):
    print(d[i])
import sys
input = sys.stdin.readline

n = int(input())
dp = [0]*(n+1)

for x in range(1, 100):
  for y in range(1, 100):
    for z in range(1, 100):
      tmp = x*x + y*y + z*z + x*y + y*z + z*x
      if tmp <= n:
        dp[tmp] += 1

for i in range(1, n+1):
  print(dp[i])
n=int(input())
k=int(n**0.5)+1
a=[0 for i in range(n+1)]
for x in range(1,k):
    for y in range(1,k):
        for z in range(1,k):
            g=x*x+y*y+z*z+x*y+y*z+x*z
            if g<=n:
                a[g]+=1
print(*a[1:],sep='\n')
def F(x,y,z):
    return x**2+y**2+z**2+x*y+y*z+z*x
dic = [0]*(10**4+1)

for x in range(1,101):
    for y in range(1,101):
        for z in range(1,101):
            temp = F(x,y,z)
            if temp<10**4+1:
                dic[temp] += 1

N = int(input())
for x in range(1,N+1):
    print(dic[x])
N=int(input())
ans_dist={}
for n in range(1,N+1):
    ans_dist[n]=0

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 + x*z
            if a <= N:
                ans_dist[a]+=1
            
for k in ans_dist.keys():
    print(ans_dist[k])
N = int(input())
li = [0]*(pow(10,6))
max_ = int(N**(1/2))+1

from itertools import combinations_with_replacement

for i in combinations_with_replacement(range(1,max_),3):
    a,b,c = i
    sum_ = a**2+b**2+c**2 + a*b+b*c+c*a
    if sum_>N:
        continue

    if a==b==c:
        li[sum_]+=1
    elif (not a==b) and (not b==c) and (not c==a):
        li[sum_]+= 6
    else:
        li[sum_]+= 3
    
for i in range(1,N+1):
    print(li[i])
n = int(input())
ans = [0 for i in range(10001)]
for x in range(1,101):
  for y in range(1,101):
    for z in range(1,101):
      v = x**2+y**2+z**2+x*y+y*z+z*x
      if v<=10000:
        ans[v]+=1
for i in range(n):
  print(ans[i+1])
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)

N = int(input())

c = collections.Counter(ans_list)

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):
            X = x ** 2 + y ** 2 + z ** 2 + x * y + y * z + z * x
            if X <= n:
                ans[X-1] += 1

for ansi in ans:
    print(ansi)
import math

n = int(input())
answer_lists = [0 for i in range(10001)]
for x in range(1, int(math.sqrt(n+1)), 1):
    for y in range(1, int(math.sqrt(n+1)), 1):
        for z in range(1, int(math.sqrt(n+1)), 1):
            formula = (x+y+z)**2 - (x*y + y*z + z*x)
            if formula <= n:
                answer_lists[formula] += 1
            else:
                break
for i in range(1, n+1, 1):
    print(answer_lists[i])
N = int(input())

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

print (*ans[1:N + 1], sep = '\n')
n = int(input())
dic = {}
for x in range(1,int(n**0.5)+1):
    for y in range(1,int(n**0.5)+1):
        for z in range(1,int(n**0.5)+1):
            ans = x**2 + y **2 + z**2 +x*y+y*z+z*x
            if ans in dic:
                dic[ans] +=1
            else:
                dic[ans] = 1

for i in range(n):
    if i+1 in dic:
        print(dic[i+1])
    else:
        print(0)
import sys
input=sys.stdin.readline
import math

N=int(input().rstrip('\n'))
n = math.floor(math.sqrt(N))
res_dict={i:0 for i in range(1,N+1)}
for x in range(1,n):
  for y in range(1,n):
    for z in range(1,n):
      ans = x**2 +y**2+z**2+x*y+y*z+x*z
      if ans in res_dict:
        res_dict[ans] += 1
      else:
        res_dict[ans] = 1
for i in range(1,N+1):
  print(res_dict[i])
n = int(input())
table = [0]*n
for x in range(1, 10**2+1):
    for y in range(1, 10**2+1):
        for z in range(1, 10**2+1):
            a = (x+y+z)**2 - x*y - y*z - z*x
            if a <= n:
                table[a-1] += 1
for a in table:
    print(a)
N = int(input())
ls = [0]*(N+2)

for i in range(1,100):
    for j in range(1,100):
        for k in range(1,100):
            t = i**2 + j**2 + k**2 + i*j + j*k + k*i 
            if t <= N :
                ls[t] += 1

for p in range(1,N+1):
    print(ls[p])
n=int(input())
p=round(n**0.5)+1
ans=[0]*n
for x in range(1,p):
    for y in range(1,p):
        for z in range(1,p):
            k=x**2+y**2+z**2+x*y+y*z+z*x
            k-=1
            if 0<=k<=n-1:
                ans[k]+=1
for i in ans:
    print(i)
import sys
readline = sys.stdin.readline

N = int(readline())

ans = [0] * (N + 1)

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

F = [0]*(N+1)

for x in range(1, 101):
    for y in range(1, 101):
        for z in range(1, 101):
            c = x**2 + y**2 + z**2 + x*y + y*z + z*x
            if (c <= N):
                F[c] += 1
print(*F[1:], sep='\n')
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])
cnt = [0] * 11000

n = int(input())

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

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

from math import sqrt
from collections import defaultdict
ans = defaultdict(int)
k = int(sqrt(N)) + 5
for x in range(1, k):
    for y in range(1, k):
        for z in range(1, k):
            ans[x**2 + y ** 2 + z ** 2 + x * y + y * z + z * x] += 1


for i in range(1, N+1):
    print(ans[i])
def main():
    N = int(input())
    ans = [0 for i in range(N + 1)]

    for x in range(1, 100):
        for y in range(1, 100):
            for z in range(1, 100):
                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())
a = [0]*(N + 1)
for i in range(1,101):
    for j in range(1,101):
        for k in range(1,101):
            if i**2 + j**2 + k**2 + i*j + j*k + k*i <= N:
                a[i**2 + j**2 + k**2 + i*j + j*k + k*i] += 1
for i in range(N):
    print(a[i + 1])
N = int(input())
A = [0]*(N+1)
L = int(N**0.5)+1
for x in range(1,L+1):
    for y in range(1,L+1):
        for z in range(1,L+1):
            num = x*x+y*y+z*z+x*y+y*z+z*x
            if num <= N:
                A[num] += 1
    

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

lis=[0 for i in range(n)]

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

for i in range(n):
    print(lis[i])
n=int(input())
ans=[0]*(10**7)
for i in range(1,101):
  for j in range(1,101):
    for k in range(1,101):
      ans[(i**2+j**2+k**2+i*j+j*k+i*k)-1]+=1
for l in range(n):
  print(ans[l])
from collections import defaultdict

n = int(input())

d = defaultdict(int)

for i in range(1, 120):
    for j in range(1, 120):
        for k in range(1, 120):
            num = i**2 + j ** 2 + k ** 2 + i * j + j * k + k * i
            d[num] += 1

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

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

table = [0] * (N+1)
for x in range(1, 101):
    for y in range(1, 101):
        for z in range(1, 101):
            tmp = count(x, y, z)
            if tmp <= N:
                table[tmp] += 1
print(*table[1:], sep="\n")
n=int(input())
d=dict({i:0 for i in range(1,n+1)})
for s in range(3,201):
    for x in range(1,s+1-2):
        for y in range(1,s+1-x-1):
            z=s-x-y
            v=x**2+y**2+z**2+x*y+y*z+z*x
            if not v in d:
                continue
            d[v]+=1
for k in d.keys():
    print(d[k])
n=int(input())
a=[0]*(n+1)
for x in range(1,100):
    for y in range(1,100):
        for z in range(1,100):
            t=x**2+y**2+z**2+x*y+y*z+z*x
            if t<=n:
                a[t-1]+=1
print(*a[:n],sep='\n')
N = int(input())
def f(a, b, c):
    return a**2 + b**2 + c**2 + a*b + b*c + c*a
ans = [0] * N

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

for x in range(1, 10**2 + 1):
    for y in range(1, 10**2 + 1):
        for z in range(1, 10**2 + 1):
            tmp = x**2 + y**2 + z**2 + x*y + y*z + z*x
            if tmp <= n:
                a[tmp] += 1
for i in range(1, n + 1):
    print(a[i])
def main():
    num = int(input())
    counter = [0] * (num + 1)
    # func(41, 41, 41) = 10086
    # func(99, 1, 1) = 10002
    for x in range(1, 100):
        for y in range(1, 100):
            for z in range(1, 123 - x - y + 1):
                tmp = (x + y + z) ** 2 - x * y - y * z - z * x
                if tmp <= num:
                    counter[tmp] += 1
    for count in counter[1:]:
        print(count)


if __name__ == '__main__':
    main()
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(1,n+1):
  print(ans[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])
n = int(input())
answer = [0 for _ in range(n)]

for i in range(1, 101):
    for j in range(1, 101):
        for k in range(1, 101):
            if i ** 2 + j ** 2 + k ** 2 + i * j + j * k + k * i <= n:
                answer[i ** 2 + j ** 2 + k ** 2 + i * j + j * k + k * i - 1] = answer[i ** 2 + j ** 2 + k ** 2 + i * j + j * k + k * i - 1] + 1
for i in range(n):
    print(answer[i])
import numpy as np

n = int(input())
max_n = int(n ** 0.5)
memo = np.zeros((max_n, max_n, max_n))

ans = [0]*(n+1)

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


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

n = int(input())
ans_d = {i: 0 for i in range(1,10001)}

p = itertools.product(range(1, 100), range(1, 100), range(1, 100))

for x, y, z in p:
    cnt = (x ** 2) + (y ** 2) + (z ** 2) + (x * y) + (y * z) + (x * z)
    if cnt <= 10000:
        ans_d[cnt] += 1

for i, j in ans_d.items():
    print(j)
    if i == n:
        break
from itertools import product

N = int(input())

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

print(*ans[1:], sep='\n')
N = int(input())

ans = [0] * 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+i*k+j*k
            if v < 10050:
                ans[v] += 1

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

n = int(input())
res = [0] * n
for x, y, z in combinations_with_replacement(range(1, int(n**0.5)), 3):
    val = x**2 + y**2 + z**2 + x*y + y*z + z*x
    if val > n:
        continue
    if (l := len(set([x, y, z]))) == 1:
        res[val-1] += 1
    elif l == 2:
        res[val-1] += 3
    else:
        res[val-1] += 6
print('\n'.join(map(str, res)))
n = int(input())

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

for i in range(1,200):
    for j in range(1,200):
        for k in range(1,200):
            a = i**2 + j**2 + k**2 + (i*j) + (j*k) + (k*i)
            if a <= 10**4:
                ans[a] += 1
                
for i in range(1,n+1):
    print(ans[i])
def main():
    n = int(input())
    d = dict()
    for i in range(1, 10001):
        d[i] = 0
    for x in range(1, 101):
        for y in range(1, 101):
            for z in range(1, 101):
                r = x**2+y**2+z**2+x*y+y*z+z*x
                if r <= 10000:
                    d[r] += 1
    for i in range(1, n+1):
        print(d[i])


main()
import math
N = int(input())
ans_list = [0 for i in range(N)]
index = int(math.sqrt(N))

for x in range(1,index):
  for y in range(1,index):
    for z in range(1,index):
      n = x**2 + y**2 + z**2 + x*y + y*z + z*x 
      if (n <= N):
        ans_list[n-1] += 1
for i in range(N):
  print(ans_list[i])
n = int(input())
rootn = int(n**0.5) +1
ans = [0] * (n+1)
for x in range(1, rootn):
  for y in range(1, rootn):
    for z in range(1, rootn):
      cur = x**2 + y**2 + z**2 + x*y + y*z + z*x
      if cur <= n:
        ans[cur] += 1
print('\n'.join(map(str, ans[1:])))
n = int(input())
dp = [0 for i in range(n+1)]
maxn = n**0.5
maxn = int(maxn)+1
for x in range(1,maxn):
    for y in range(1,maxn):
        for z in range(1,maxn):
            p = x*x + y*y + z*z + x*y + y*z +z*x
            if p<=n:
                dp[p]+=1
for i in dp[1::]:
    print(i)
n = int(input())

ans=[0]*(n+100000)

import math
for x in range(1,int(math.sqrt(n+1)+1)):
    if x**2 > n:
        break
    for y in range(1,int(math.sqrt(n+1)+1)):
        if x**2 +y**2 + x*y> n:
            break
        for z in range(1,int(math.sqrt(n+1)+1)):
            calc = x**2+y**2+z**2+x*y+y*z+z*x
            ans[calc]+=1

for i in range(1,n+1):
    print(ans[i])
N=input()
L=[ 0 for _ in range(N+1) ]
for x in range(1,int(N**0.5)+1):
    for y in range(1,int(N**0.5)+1):
        for z in range(1,int(N**0.5)+1):
            a=x**2+y**2+z**2+x*y+y*z+z*x
            if 1<=a<=N:
                L[a]+=1
for i in range(1,N+1):
    print L[i]
N = int(input())

N2 = int(N**0.5)

cnt = [0] * (90000)

for x in range(1,N2+1):
  for y in range(1,N2+1):
    for z in range(1,N2+1):
      xyz = x*x + y*y + z*z + x*y + y*z + z*x
      cnt[xyz] += 1
#
for i in range(1,N+1):
  print( cnt[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):
            n = x**2+y**2+z**2+x*y+y*z+z*x
            if N < n:
                continue
            ans[n] += 1


for a in ans[1:]:
    print(a)
N = int(input())
arr = [0]*(N)
lim = int(N**0.5 + 1)
for i in range(1,lim):
    for j in range(1,lim):
        for k in range(1,lim):
            num = i**2 + j**2 + k**2 + i*j + j*k + k*i - 1
            if num <= N-1:
                arr[num] += 1

print(*arr, sep='\n')
n = int(input())
X = [0]*(10**4+1)

for x in range(1, 101):
    for y in range(1, 101):
        for z in range(1, 101):
            t = (x+y)**2+(y+z)**2+(z+x)**2
            if t%2 == 0:
                if 0 <= t//2 <= 10**4:
                    X[t//2] += 1

for i in range(1, n+1):
    print(X[i])
#!/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] += 1

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


if __name__ == "__main__":
    main()
n = int(input())
ans = [0 for i in range(n+1)]
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
            #print(x, y, z, tmp)
            if 1 <= tmp and tmp <= n:
                ans[tmp] += 1
for i in range(1, n+1):
    print(ans[i])
n=int(input())

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

li=[0]*(n+5)
for x in range(1,200):
  for y in range(1,200):
    for z in range(1,200):
      num=f_xyz(x,y,z)
      if num<=n:
        li[f_xyz(x,y,z)+1]+=1
      else:
        break
        
for i in li[2:n+2]:
  print(i)
N = int(input())
A = [0]*(61206)
def calc(x,y,z):
    return x**2+y**2+z**2+x*y+y*z+z*x
for x in range(1,101):
    for y in range(1,101):
        for z in range(1,101):
            A[calc(x,y,z)] += 1
for i in range(1,N+1):
    print(A[i])
from collections import defaultdict
n = int(input())

res = defaultdict(int)
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
            res[v] += 1

for i in range(1, n + 1):
    print(res.get(i, 0))
n=int(input())
l=[0]*(10**5)
for x in range(1,101):
    for y in range(1,101):
        for z in range(1,101):
            l[(x*x+y*y+z*z+x*y+y*z+z*x)-1]+=1
for i in range(n):
    print(l[i])
n = int(input())
ans = [0 for _ in range(n + 1)]
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*k +k*j+j*i
            if v < n+1:
                ans[int(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*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])
#!/usr/bin/env python3
n = int(input())
a = int(n**0.5) + 1
ans = [0]*(n+1)
for x in range(1, a):
    for y in range(1, a):
        for z in range(1, a):
            s = x**2+y**2+z**2+x*y+y*z+z*x
            if s <= n:
                ans[s] += 1

for i in range(n):
    print(ans[i+1])
from sys import stdin
import math
n = int(stdin.readline().rstrip())
m = int(n**0.5) +2

data =[0] *100000
tmp = 0
# # x + y + z =3以上
for x in range (1, m):
    for y in range(1, m):
        for z in range(1, m):
            tmp = x*x + y*y + z*z + x*y + y*z + z*x
            if tmp <= n :
                data[tmp] += 1

#配列の0番目除く
for i in range(1,n+1):
    print(data[i])
n=int(input())
Ans=[0]*n
for x in range(1,100):
    for y in range(1,100):
        for z in range(1,100):
            num=x**2+y**2+z**2+x*y+y*z+z*x
            if num<=n:
                Ans[num-1]+=1
print(*Ans,sep='\n')
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):
            n = x*x + y*y + z*z + x*y + y*z + z*x
            if 1 <= n <= N:
                ans[n] += 1
print(*ans[1:], sep='\n')
def main():
    MX = 10 ** 2
    
    N = int(input())

    ctr = [0] * (N + 1)
    for x in range(1, MX + 1):
        for y in range(1, MX + 1):
            for z in range(1, MX + 1):
                t = x * x + y * y + z * z + x * y + y * z + z * x
                if t <= N:
                    ctr[t] += 1

    print(*ctr[1:], sep='\n')


if __name__ == '__main__':
    main()
import sys
sys.setrecursionlimit(10**6)

MAX = 10 ** 4 + 5


def main(input, print):
    N = int(input())
    ans = [0] * MAX
    for x in range(1, 99):
        for y in range(1, 99):
            for z in range(1, 99):
                a = x**2+y**2+z**2+x*y+y*z+z*x
                if a < MAX:
                    ans[a] += 1
    for i in range(1, N+1):
        print(ans[i])


if __name__ == '__main__':
    main(sys.stdin.readline, print)
N=int(input())
ans=[0]*(N+1)
for x in range(1,int(N**0.5)+2):
  for y in range(1,int(N**0.5)+2):
    for z in range(1,int(N**0.5)+2):
      if x**2+y**2+z**2+x*y+x*z+y*z<=N:
        ans[x**2+y**2+z**2+x*y+x*z+y*z]+=1

for i in range(1,N+1):
  print(ans[i])
n=int(input())
a=[0]*(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):
      b=i**2+j**2+k**2+i*j+j*k+k*i-1
      if b<=10**4-1:
        a[b]+=1
for i in range(n):
  print(a[i])
n=int(input())
m = int(n ** (0.5)) + 1
ans=[0]*(n+1)
for i in range(1,m):
    a=i**2
    for j in range(1,m):
        b=a
        b+=j**2+i*j
        for k in range(1,m):
            c=b
            c+=k**2+j*k+k*i
            if c<n+1:
                ans[c]+=1
for i in range(1,n+1):
    print(ans[i])