Il teorema dei numeri poligonali di Fermat afferma che ogni numero intero positivo può essere espresso come la somma di al massimo numeri poligonali. Ciò significa che ogni intero positivo può essere espresso come la somma di fino a tre numeri triangolo, quattro numeri quadrati, cinque numeri pentagonali ecc vostro compito è quello di prendere un intero positivo , e un numero intero , e per emettere i interi -gonali che si sommano a .
Il numero intero - -gonale, dove e , può essere definito in un paio di modi. Il modo non-matematica-y è che il ° numero -gonal può essere costruito come un poligono regolare con lati, ciascuno di lunghezza . Ad esempio, per (numeri triangolari):
Vedi qui per esempi con una più grande .
La definizione matematica è usando la formula per , che produce l' - esimo numero -gonale:
che è riportato nella pagina di Wikipedia qui .
Ingresso
Due interi positivi, e , con la condizione . Puoi inserire questi numeri interi nella rappresentazione più naturale nella tua lingua (decimali, unari, numeri di Church, numeri in virgola mobile con valori interi, ecc.).
Produzione
Un elenco di numeri interi, , con una lunghezza massima di , in cui la somma di è uguale a tutti i numeri interi in sono numeri interi -gonali. Ancora una volta, gli interi possono essere emessi nella rappresentazione naturale nella tua lingua, con qualsiasi separatore distinto e coerente (quindi caratteri non decimali per output decimale, un carattere diverso da quello usato per output unario ecc.)
Regole
- Gli ingressi o le uscite non supereranno mai il limite intero per la tua lingua
- non deve essere ordinato
- In caso di più uscite possibili, tutte o tutte sono accettabili
- Questo è code-golf quindi vince il codice più breve in byte
Casi test
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
che potremmo produrre 5,12,0,0,0
invece di solo 5,12
?
Q
alla mia richiesta?