Завдання
Дано два цілих числа d
і n
, знайди кількість способів виразити n
у вигляді суми d
квадратів. Тобто n == r_1 ^2 + r_2 ^2 + ... + r_d ^2
, таке, що r_m
є цілим числом для всіх цілих чисел 1 ≤ m ≤ d
. Зауважте, що підміна двох різних значень (наприклад, r_1
та r_2
) вважається відмінною від вихідного рішення.
Наприклад, число 45 можна записати у вигляді суми двох квадратів 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
Правила
- Вбудовані рішення дозволені, але неконкурентоспроможні (ах, Mathematica )
- Стандартні лазівки також заборонені.
- Входи можуть бути зворотні.
Приклад вводу / виводу
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
.