任务
给定两个整数d和n,找到表示n为d平方和的方式数。也就是说,,对于所有整数n == r_1 ^2 + r_2 ^2 + ... + r_d ^2,r_m都是一个整数1 ≤ m ≤ d。请注意,交换两个不同的值(例如r_1和r_2)被认为与原始解决方案不同。
例如,数字45可以写为2平方和的8种不同方式:
45
== (-6)^2 + (-3)^2
== (-6)^2 + 3^2
== (-3)^2 + (-6)^2
== (-3)^2 + 6^2
== 3^2 + (-6)^2
== 3^2 + 6^2
== 6^2 + (-3)^2
== 6^2 + 3^2
规则
- 允许使用内置解决方案,但不能与之竞争(Ahem,Mathematica)
 - 也禁止出现标准漏洞。
 - 输入可以颠倒。
 
示例I / O
In:   d, n
In:   1, 0
Out:  1
In:   1, 2
Out:  0
In:   2, 2
Out:  4
In:   2, 45
Out:  8
In:   3, 17
Out:  48
In:   4, 1000
Out:  3744
In:   5, 404
Out:  71440
In:   11, 20
Out:  7217144
In:   22, 333
Out:  1357996551483704981475000
这是代码高尔夫球,因此使用最少字节的提交会获胜!
1, 0测试用例,有一种1方法可以表示0为1平方和:0 == 0^2。