Il tuo compito è calcolare lentamente l'espiazione, con i seguenti passaggi:
Dati due input (in questo esempio, 4 e 8), è necessario calcolare l'espiazione calcolando l'equazione bit per bit. Dovresti farlo 4^8
, avere un valore base maggiore (4) e un esponente più piccolo (8). Puoi farlo usando più esponenziazione e divisione. Puoi dividere l'esponente per un valore X (a condizione che X sia un divisore primo dell'esponente) e trasformare il valore base ( B ) in B^X
. Ad esempio, puoi fare:
4^8 = (4 ^ 2)^(8 / 2) = 16^4
Ho sostituito X con 2 nell'equazione precedente.
Puoi "semplificare" 16^4
ulteriormente, sempre con X = 2
:
16^4 = (16 ^ 2)^(4 / 2) = 256^2
E infine calcola un numero (di nuovo, X = 2
):
256^2 = (256 ^ 2)^(2 / 2) = 65536^1 = 65536
Perciò,
4^8 = 16^4 = 256^2 = 65536
Questo è l'output che dovresti dare. Il separatore di output è un po 'flessibile, ad esempio, è possibile separare le equazioni per newline o spazi anziché =
. In alternativa, è possibile inserirli in un elenco (ma non è necessario utilizzare una cifra o il ^
carattere come separatore).
Come ha sottolineato Martin Ender, ^
è anche flessibile. Ad esempio, è possibile utilizzare [A, B]
o A**B
anziché A^B
nell'output.
X può essere solo primo, il che significa che non è possibile utilizzare X = 8
per arrivare direttamente alla soluzione, e i valori di X saranno solo fattori primi del secondo input (l'esponente).
Esempi:
(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)
Tieni presente che anche il formato di input è flessibile (ad esempio potresti prendere A \n B
o A B
invece di A^B
. Ovviamente, questo non sarebbe un problema se scrivi una funzione prendendo due argomenti.
Nel secondo esempio, andiamo direttamente al calcolo, poiché 11
è primo e non possiamo più fare altri passi.
È possibile scrivere un programma o una funzione per risolvere questo problema e stampare o restituire il valore, rispettivamente.
Dato che si tratta di code-golf , vince quel codice più corto!
x^1
?
32^3
e8^15
non sono neanche 512.