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 in Python (3.8.2) (judge verdict: Accepted)

#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
# FileName: 	triplets
# CreatedDate:  2020-07-11 22:09:08 +0900
# LastModified: 2020-07-11 22:31:12 +0900
#


import os
import sys
# import numpy as np
# import pandas as pd
from itertools import combinations_with_replacement as nCr
from collections import Counter


def main():
    S = list(map(list, nCr(range(1, 100), 3)))
    sum_list = []
    cnt = 0
    for s in S:
#        print(s)
        total = s[0]**2+s[1]**2+s[2]**2+s[0]*s[1]+s[1]*s[2]+s[2]*s[0]
        loop_cnt = 1
        if s[0]!=s[1] and s[1]!=s[2] and s[2]!=s[0]:
            loop_cnt = 6
        elif (s[0] == s[1] and s[1] != s[2]) or (s[1] == s[2] and s[2] != s[0]) or (s[2] == s[0] and s[0] != s[1]):
            loop_cnt = 3
        if total < 10001:
            for _ in range(loop_cnt):
                sum_list.append(total)
        cnt+=1
#        print(sum_list)
    #    if cnt==20:
    #        return
    
    c = Counter(sum_list)
    key = c.keys()
    n = int(input())
    for i in range(1, n+1):
        if not i in key:
            print(0)
        else:
            print(c[i])

if __name__ == "__main__":
    main()