Der polygonale Zahlensatz von Fermat besagt, dass jede positive ganze Zahl als die Summe von höchstens -gonalen Zahlen ausgedrückt werden kann. Dies bedeutet, dass jede positive ganze Zahl als Summe von bis zu drei Dreieckszahlen, vier Quadratzahlen, fünf Fünfeckzahlen usw. ausgedrückt werden kann. Ihre Aufgabe ist es, eine positive ganze Zahl und eine ganze Zahl und die auszugeben -gonale ganze Zahlen, die sich zu summieren .
Die - te -gonal ganze Zahl, wobei und , können in ein paar Arten definiert werden. Der nicht-mathematische Weg ist, dass die te eckige Zahl als reguläres Polygon mit Seiten mit jeweils der Länge n konstruiert werden kann . Zum Beispiel für s = 3 (Dreieckszahlen):
Sehen Sie hier für Beispiele mit einem größeren .
Die Mathematik-y - Definition wird durch die Formel für die Verwendung von , die die Ausbeuten -te -gonal Nummer:
Das ist in der Wikipedia-Seite hier angegeben .
Eingang
Zwei positive ganze Zahlen und mit der Bedingung . Sie können diese Ganzzahlen in der natürlichsten Darstellung in Ihrer Sprache eingeben (Dezimal-, Unär-, Kirchenzahlen, Gleitkommazahlen mit ganzzahligen Werten usw.).
Ausgabe
Eine Liste von ganzen Zahlen, , mit einer maximalen Länge von , wobei die Summe von gleich ist , und alle ganzen Zahlen in sind -gonal ganze Zahlen sind . Auch hier können die Ganzzahlen in der natürlichen Darstellung in Ihrer Sprache mit einem eindeutigen, konsistenten Trennzeichen ausgegeben werden (also Nicht-Dezimalzeichen für die Dezimalausgabe, ein Zeichen, das sich von dem für die unäre Ausgabe usw. unterscheidet).
Regeln
- Die Ein- oder Ausgänge überschreiten niemals die Ganzzahlgrenze für Ihre Sprache
- muss nicht bestellt werden
- Bei mehreren möglichen Ausgaben sind einige oder alle akzeptabel
- Das ist Code-Golf, also gewinnt der kürzeste Code in Bytes
Testfälle
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
könnten wir 5,12,0,0,0
statt nur ausgeben 5,12
?
Q
meiner Einreichung eine hinzufügen ?