#aising2020c. [aising2020_c]XYZ Triplets

[aising2020_c]XYZ Triplets

题目描述

f(n)f(n) 表示满足以下条件的整数三元组 (x,y,z)(x,y,z) 的数量:

  • 1x,y,z1 \leq x,y,z
  • x2+y2+z2+xy+yz+zx=nx^2 + y^2 + z^2 + xy + yz + zx = n

给定整数 NN,求出所有 f(1),f(2),f(3),ldots,f(N)f(1),f(2),f(3),\\ldots,f(N) 的值。

约束条件

  • 输入中的所有值都是整数。
  • 1N1041 \leq N \leq 10^4

输入

从标准输入读入输入数据,输入格式如下:

NN

输出

输出 NN 行。第 ii 行应包含值 f(i)f(i)


示例输入1

20

示例输出1

0
0
0
0
0
1
0
0
0
0
3
0
0
0
0
0
3
3
0
0
  • n=6n=6 时,只有 (1,1,1)(1,1,1) 满足上述条件。因此,f(6)=1f(6) = 1
  • n=11n=11 时,有三个三元组满足上述条件,分别是 (1,1,2)(1,1,2)(1,2,1)(1,2,1)(2,1,1)(2,1,1)。因此,f(11)=3f(11) = 3
  • n=17n=17 时,有三个三元组满足上述条件,分别是 (1,2,2)(1,2,2)(2,1,2)(2,1,2)(2,2,1)(2,2,1)。因此,f(17)=3f(17) = 3
  • n=18n=18 时,有三个三元组满足上述条件,分别是 (1,1,3)(1,1,3)(1,3,1)(1,3,1)(3,1,1)(3,1,1)。因此,f(18)=3f(18) = 3