Un niño curioso utiliza un programa que puede factorizar un número o una expresión en la forma siguiente: p1^e1 * p2^e2 * ... * pn^en. Los exponentes iguales a 1se omiten, por ejemplo360 = 2^3 * 3^2 * 5
El niño escribe esta salida en el programa como una nueva entrada, pero no entiende el ^signo, por lo que a veces omite uno o más de los que concatenan la base principal y el exponente correspondientes. P.ej(360 =) 2^3 * 3^2 * 5 => 2^3 * 32 * 5 (= 1280)
Debido a estos errores, puede obtener una factorización diferente que puede ingresar nuevamente (omitiendo 0 o más ^). Repite el proceso hasta que la factorización ya no cambie (tal vez no haya más ^o haya copiado la salida correctamente).
Debería escribir un programa o función que, dado un número entero n( n>1), muestre todos los números posibles en orden creciente cuya factorización podría ser aquella con la que terminó el niño (incluido n). Por ejemplo, para la entrada 16las posibles factorizaciones finales son(16 =) 2^4, (24 =) 2^3 * 3, (23*3 =) 3 * 23
Detalles de entrada:
- la entrada es un número entero más grande que
1 - no se dará ninguna entrada que genere un número de salida mayor que
2^31-1 - no se dará ninguna entrada que genere más que
1000números de salida
Detalles de salida:
- una lista de enteros en una forma conveniente para su idioma
Ejemplos:
Entrada => Salida
11 => 11
16 => 16 24 69
360 => 140 360 770 1035 1219 1280 2875 3680
605 => 560 605 840 2415
2048 => 211 2048
58564 => 230 456 1311 2508 9975 12768 13794 20748 58564 114114 322102
Este es el código de golf, por lo que gana el programa más corto.