Twierdzenie liczby wielobocznej Fermata stwierdza, że każdą dodatnią liczbę całkowitą można wyrazić jako sumę co najwyżej -liczb liczbowych. Oznacza to, że każdą dodatnią liczbę całkowitą można wyrazić jako sumę maksymalnie trzech liczb trójkątów, czterech liczb kwadratowych, pięciu liczb pięciokątnych itp. Twoim zadaniem jest pobranie dodatniej liczby całkowitej i liczby całkowitej i wyprowadzenie -gonalne liczby całkowite, które sumują się do .
-tej -gonal całkowitą, gdzie i , może być zdefiniowane w kilka sposobów. Sposób niż matematyka Y jest taka, że tH liczba -gonal może być wykonana jako regularny wielokąt boków, z których każdy o długości . Na przykład dla (liczby trójkątne):
Zobacz tutaj przykłady z większymi .
Definicja Math Y jest za pomocą wzoru na , które daje w wyniku -tym liczbę -gonal:
który jest podany na stronie Wikipedii tutaj .
Wkład
Dwie dodatnie liczby całkowite, i , z warunkiem . Możesz wprowadzić te liczby całkowite w najbardziej naturalnej reprezentacji w swoim języku (dziesiętne, jednoargumentowe, liczby kościelne, liczby zmiennoprzecinkowe o wartościach całkowitych itp.).
Wydajność
Lista liczb całkowitych o maksymalnej długości , gdzie suma jest równa a wszystkie liczby całkowite w są liczbami całkowitymi -gonal. Ponownie, liczby całkowite mogą być wyprowadzane w naturalnej reprezentacji w twoim języku, z dowolnym wyraźnym, spójnym separatorem (więc znak (-y) dziesiętny dla wyjścia dziesiętnego, znak inny niż ten używany dla wyjścia jednostkowego itp.)
Zasady
- Wejścia lub wyjścia nigdy nie przekroczą limitu liczb całkowitych dla twojego języka
- nie musi być zamawiany
- W przypadku wielu możliwych wyników, wszystkie lub wszystkie są dopuszczalne
- To jest code-golf, więc wygrywa najkrótszy kod w bajtach
Przypadki testowe
x, s => L
1, s => 1
2, s => 1, 1
5, 6 => 1, 1, 1, 1, 1
17, 3 => 1, 6, 10
17, 4 => 1, 16
17, 5 => 5, 12
36, 3 => 36
43, 6 => 15, 28
879, 17 => 17, 48, 155, 231, 428
4856, 23 => 130, 448, 955, 1398, 1925
x=17, s=5
czy moglibyśmy produkować 5,12,0,0,0
zamiast po prostu 5,12
?
Q
do mojego zgłoszenia?