Ein neugieriges Kind verwendet ein Programm , das eine Zahl oder einen Ausdruck in das folgende Formular faktorisieren kann: p1^e1 * p2^e2 * ... * pn^en
. Exponenten gleich 1
sind weggelassen, z360 = 2^3 * 3^2 * 5
Das Kind gibt diese Ausgabe als neue Eingabe in das Programm ein, aber es versteht das ^
Vorzeichen nicht und überspringt manchmal eine oder mehrere derjenigen, die die entsprechende Prim-Basis und den entsprechenden Exponenten verketten. Z.B(360 =) 2^3 * 3^2 * 5 => 2^3 * 32 * 5 (= 1280)
Aufgrund dieser Fehler erhält sie möglicherweise eine andere Faktorisierung, die sie erneut eingeben kann (indem sie 0 oder mehr überspringt ^
). Sie wiederholt den Vorgang, bis sich die Faktorisierung nicht mehr ändert (möglicherweise gibt es keine mehr ^
oder sie hat die Ausgabe korrekt kopiert).
Sie sollten ein Programm oder eine Funktion schreiben, die mit einer Ganzzahl n
( n>1
) alle möglichen Zahlen in aufsteigender Reihenfolge ausgibt, deren Faktorisierung diejenige sein könnte, mit der das Kind endete (einschließlich n
). ZB für die Eingabe sind 16
die möglichen endgültigen Faktorisierungen(16 =) 2^4, (24 =) 2^3 * 3, (23*3 =) 3 * 23
Eingabedetails:
- Eingabe ist eine einzelne Ganzzahl größer als
1
- Es werden keine Eingaben gemacht, die eine Ausgabenummer größer als erzeugen
2^31-1
- Es werden keine Eingaben gemacht, die mehr als
1000
Ausgabenummern erzeugen
Ausgabedetails:
- eine Liste von Ganzzahlen in einer für Ihre Sprache geeigneten Form
Beispiele:
Eingabe => Ausgabe
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
Dies ist Code-Golf, also gewinnt das kürzeste Programm.