El teorema del número poligonal de Fermat establece que cada entero positivo se puede expresar como la suma de, como máximo, números gonales. Esto significa que cada entero positivo puede expresarse como la suma de hasta tres números de triángulo, cuatro números cuadrados, cinco números pentagonales, etc. Su tarea es tomar un entero positivo , y un entero , y generar el enteros gonales que suman .
El entero -ésimo - gonal, donde y , se puede definir de dos maneras. La forma no matemáticas-y es que el º número -gonal puede ser construido como un polígono regular con lados, cada uno de longitud . Por ejemplo, para (números triangulares):
Ver aquí para ejemplos con una más grande .
La definición matemática-y es mediante el uso de la fórmula para , que produce la -ésima número -gonal:
que se da en la página de Wikipedia aquí .
Entrada
Dos números enteros positivos, y , con la condición de . Puede ingresar estos enteros en la representación más natural en su idioma (decimal, unario, números de iglesia, números de coma flotante con valor entero, etc.).
Salida
Una lista de los números enteros, , con una longitud máxima de , donde la suma de es igual a y todos los números enteros en son números enteros -gonal. Una vez más, los números enteros se pueden generar en la representación natural en su idioma, con cualquier separador distinto y consistente (de modo que los caracteres no decimales para la salida decimal, un carácter diferente del utilizado para la salida unaria, etc.)
Reglas
- Las entradas o salidas nunca excederán el límite entero para su idioma
- no tiene que ser ordenado
- En caso de múltiples salidas posibles, cualquiera o todas son aceptables
- Este es el código de golf, por lo que gana el código más corto en bytes
Casos de prueba
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
, ¿podríamos producir en 5,12,0,0,0
lugar de solo 5,12
?
Q
a mi envío?