Tugas
Diberi dua bilangan bulat d
dan n
, temukan jumlah cara untuk mengekspresikan n
sebagai jumlah d
kuadrat. Artinya n == r_1 ^2 + r_2 ^2 + ... + r_d ^2
, sedemikian rupa sehingga r_m
merupakan bilangan bulat untuk semua bilangan bulat 1 ≤ m ≤ d
. Perhatikan bahwa menukar dua nilai yang berbeda (misalnya r_1
dan r_2
) dianggap berbeda dari solusi asli.
Misalnya, angka 45 dapat ditulis sebagai jumlah 2 kotak 8 cara yang berbeda:
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
Aturan
- Solusi bawaan diizinkan tetapi tidak bersaing (ahem, Mathematica )
- Celah standar juga dilarang.
- Input dapat dibalik.
Contoh 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
Ini adalah kode-golf , jadi pengiriman menggunakan byte paling sedikit menang!
1, 0
kasus uji, ada 1
cara untuk mengungkapkan 0
sebagai jumlah dari 1
persegi: 0 == 0^2
.