Ihre Aufgabe ist es, die Exponentiation mit den folgenden Schritten langsam zu berechnen:
Bei zwei Eingaben (in diesem Beispiel 4 und 8) müssen Sie die Exponentiation berechnen, indem Sie die Gleichung Stück für Stück berechnen. Sie hätten 4^8
einen größeren Basiswert (4) und einen kleineren Exponenten (8). Sie können dies mit mehr Potenzierung und Division tun. Sie können den Exponenten durch einen Wert X teilen (vorausgesetzt, X ist ein Primteiler des Exponenten) und den Basiswert ( B ) in machen B^X
. Zum Beispiel können Sie Folgendes tun:
4^8 = (4 ^ 2)^(8 / 2) = 16^4
Ich habe X in der vorherigen Gleichung durch 2 ersetzt .
Sie können 16^4
noch einmal weiter vereinfachen X = 2
:
16^4 = (16 ^ 2)^(4 / 2) = 256^2
Und dann endlich (wieder X = 2
) eine Zahl berechnen :
256^2 = (256 ^ 2)^(2 / 2) = 65536^1 = 65536
Deshalb,
4^8 = 16^4 = 256^2 = 65536
Dies ist die Ausgabe, die Sie geben sollten. Das Ausgabetrennzeichen ist etwas flexibel. Sie können beispielsweise die Gleichungen durch Zeilenumbrüche oder Leerzeichen anstelle von trennen =
. Sie können sie auch in eine Liste einfügen (Sie dürfen jedoch keine Ziffer oder das ^
Zeichen als Trennzeichen verwenden).
Wie Martin Ender betonte, ^
ist das auch flexibel. Beispielsweise können Sie [A, B]
oder A**B
anstelle von A^B
in der Ausgabe verwenden.
X kann nur eine Primzahl sein, was bedeutet, dass Sie nicht X = 8
direkt zur Lösung gelangen können, und die Werte von X sind nur Primfaktoren der zweiten Eingabe (des Exponenten).
Beispiele:
(input) -> (output)
4^8 -> 4^8=16^4=256^2=65536
5^11 -> 5^11=48828125
2^15 -> 2^15=32^3=32768 (2^15=8^5=32768 is also a valid output)
Beachten Sie, dass das Eingabeformat auch flexibel ist (z. B. können Sie A \n B
oder A B
anstelle von verwenden A^B
. Dies wäre natürlich kein Problem, wenn Sie eine Funktion mit zwei Argumenten schreiben.
Im zweiten Beispiel gehen wir direkt zur Berechnung über, da 11
es sich um eine Primzahl handelt und wir keine weiteren Schritte ausführen können.
Sie können ein Programm oder eine Funktion schreiben, um dies zu lösen, und Sie können den Wert drucken bzw. zurückgeben.
Da dies Code-Golf ist, gewinnt dieser kürzeste Code!
x^1
?
32^3
und8^15
sind auch nicht 512.