Problem:
 Score : 300 points    Problem Statement Let f(n) be the number of triples of integers (x,y,z) that satisfy both of the following conditions:   1 \leq x,y,z  x^2 + y^2 + z^2 + xy + yz + zx = n   Given an integer N , find each of f(1),f(2),f(3),\ldots,f(N) .      Constraints  All values in input are integers.  1 \leq N \leq 10^4         Input Input is given from Standard Input in the following format:  N       Output Print N lines. The i -th line should contain the value f(i) .        Sample Input 1 20      Sample Output 1 0
0
0
0
0
1
0
0
0
0
3
0
0
0
0
0
3
3
0
0   For n=6 , only (1,1,1) satisfies both of the conditions. Thus, f(6) = 1 .  For n=11 , three triples, (1,1,2) , (1,2,1) , and (2,1,1) , satisfy both of the conditions. Thus, f(6) = 3 .  For n=17 , three triples, (1,2,2) , (2,1,2) , and (2,2,1) , satisfy both of the conditions. Thus, f(17) = 3 .  For n=18 , three triples, (1,1,3) , (1,3,1) , and (3,1,1) , satisfy both of the conditions. Thus, f(18) = 3 .

Solution (Python):
N = int(input())
cnt = 0
anslst = [0] * (N + 1)
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
            ans += i * j + j * k + k * i
            if N >= ans:
                anslst[ans] += 1

for i in anslst[1:]:
    print(i)

Solution (Python):
N = int(input())

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

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

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

Solution (Python):
n = int(input())
arr = [0]*10100
for i in range(1,110):
    for j in range(1,110):
        for k in range(1,110):
            s = i*i+j*j+k*k+i*j+j*k+k*i;
            if s<10100:
                arr[s]+=1
for i in range(n):
    print(arr[i+1])

Solution (Python):
import math
N=int(input())
f=[0]*(10050)
for j in range(int(math.sqrt(N))):
    for k in range(int(math.sqrt(N))):
        for l in range(int(math.sqrt(N))):
            i=(j+1)*(j+1)+(k+1)*(k+1)+(l+1)*(l+1)+(j+1)*(k+1)+(k+1)*(l+1)+(l+1)*(j+1)
            if i<10050:
                f[i]=f[i]+1

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

Solution (Python):
import math
n = int(input())
ls = [0 for i in range(n)]
r = math.ceil(math.sqrt(n))

for x in range(1, r + 1):
    for y in range(1, r + 1):
        for z in range(1, r + 1):
            k = x ** 2 + y ** 2 + z ** 2 + x * y + y * z + z * x
            if k <= n:
                ls[k - 1] += 1

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

Solution (Python):

import math

N = int(input())
f = [0] * N
for i in range(1, N+1):
  count = 0
  for x in range(1, i):
    if x**2 > N:
      break
    for y in range(x, i):
      if y**2 > N:
        break
      z = i-x-y
      if z < y:
        break
      n = x**2 + y**2 + z**2 + x*y + y*z + z*x
      if z > math.sqrt(n + 1):
        break
      if n <= N:
        if x == y and x == z:
          f[n-1] += 1
        elif x == y or y == z:
          f[n-1] += 3
        elif x != y and x != z and y != z:
          f[n-1] += 6
for i in f:
  print(i)

Solution (Python):
import collections
n=int(input())
cnt=[]
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:
        cnt.append(a)
c=collections.Counter(cnt)
for i in range(1,n+1):
  print(c[i])

Solution (Python):
def main():
  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])


if __name__ == '__main__':
  main()

Solution (Python):
n = int(input())
a = [0]*(n+1)
for i in range(1, 102):
    for j in range(1, 102):
        for k in range(1, 102):
            if (i*i + j*j + k*k + i*j + j*k + i*k) <= n:
                a[i*i + j*j + k*k + i*j + j*k + i*k] +=1
                
for x in a[1:]:
    print(x)

Solution (Python):
from itertools import product
N=int(input())
f=[0]*N
for x,y,z in product(range(1,100),repeat=3):
    n=x**2+y**2+z**2+x*y+y*z+z*x
    if n<=N:
        f[n-1]+=1
for i in range(N):
    print(f[i])

Solution (Python):
n = int(input())
ans = [0] * (n + 1)
loop = int(n ** .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)

Solution (Python):
n = int(input())
cnt = [0 for i in range(10001)]

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

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