import math

import numpy as np



def f(x,y,z):

  return x**2+y**2+z**2+x*y+y*z+z*x



N = int(eval(input()))

f_list = np.zeros((N,1), dtype=int)



for x in range(1,math.floor((N//6)**0.5)+10):

  for z in range(1,math.floor(N**0.5)+10):

# for x in range(1,math.floor((N//6)**0.5)+1):

#   for z in range(1,math.floor(N**0.5)+1):

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

      if f(x,y,z)<=N:

        if((x-y)*(y-z)*(z-x)==0): # 少なくとも2つが等しい

          if(x==y and y==z):

            f_list[f(x,y,z)-1] = f_list[f(x,y,z)-1] + 1

          else:

            f_list[f(x,y,z)-1] = f_list[f(x,y,z)-1] + 3

        else:

          f_list[f(x,y,z)-1] = f_list[f(x,y,z)-1] + 6



for i in range(N):

  print((f_list[i][0]))
import math

import numpy as np

 

def f(x,y,z):

  return x**2+y**2+z**2+x*y+y*z+z*x

 

N = int(eval(input()))

f_list = np.zeros((N,1), dtype=int)

 

for x in range(1,math.floor((N//6)**0.5)+1):

  for z in range(1,math.floor(N**0.5)+1):

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

      if f(x,y,z)<=N:

        if((x-y)*(y-z)*(z-x)==0): # 少なくとも2つが等しい

          if(x==y and y==z):

            f_list[f(x,y,z)-1] = f_list[f(x,y,z)-1] + 1

          else:

            f_list[f(x,y,z)-1] = f_list[f(x,y,z)-1] + 3

        else:

          f_list[f(x,y,z)-1] = f_list[f(x,y,z)-1] + 6

 

for i in range(N):

  print((f_list[i][0]))
import math
import numpy as np


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


N = int(eval(input()))
f_list = np.zeros((N, 1), dtype=int)
for x in range(1, math.floor((N // 6) ** 0.5) + 10):
    for z in range(1, math.floor(N**0.5) + 10):
        # for x in range(1,math.floor((N//6)**0.5)+1):
        #   for z in range(1,math.floor(N**0.5)+1):
        for y in range(x, z + 1):
            if f(x, y, z) <= N:
                if (x - y) * (y - z) * (z - x) == 0:  # 少なくとも2つが等しい
                    if x == y and y == z:
                        f_list[f(x, y, z) - 1] = f_list[f(x, y, z) - 1] + 1
                    else:
                        f_list[f(x, y, z) - 1] = f_list[f(x, y, z) - 1] + 3
                else:
                    f_list[f(x, y, z) - 1] = f_list[f(x, y, z) - 1] + 6
for i in range(N):
    print((f_list[i][0]))

import math
import numpy as np


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


N = int(eval(input()))
f_list = np.zeros((N, 1), dtype=int)
for x in range(1, math.floor((N // 6) ** 0.5) + 1):
    for z in range(1, math.floor(N**0.5) + 1):
        for y in range(x, z + 1):
            if f(x, y, z) <= N:
                if (x - y) * (y - z) * (z - x) == 0:  # 少なくとも2つが等しい
                    if x == y and y == z:
                        f_list[f(x, y, z) - 1] = f_list[f(x, y, z) - 1] + 1
                    else:
                        f_list[f(x, y, z) - 1] = f_list[f(x, y, z) - 1] + 3
                else:
                    f_list[f(x, y, z) - 1] = f_list[f(x, y, z) - 1] + 6
for i in range(N):
    print((f_list[i][0]))

-for x in range(1, math.floor((N // 6) ** 0.5) + 10): -    for z in range(1, math.floor(N**0.5) + 10): -        # for x in range(1,math.floor((N//6)**0.5)+1): -        #   for z in range(1,math.floor(N**0.5)+1): +for x in range(1, math.floor((N // 6) ** 0.5) + 1): +    for z in range(1, math.floor(N**0.5) + 1):