Come scritto da @rctimelines , il problema si risolve con due cicli.all'universita' venerdi hanno spiegato il ciclo while quindi e' tanto se so come funziona il for, purtrioppo molte cose del codice non le conosco, avrei preferito una dritta detta in "parole"
Se vi siete stufati vi capisco
Se puoi calcolare un prodotto mediante sole addizioni(sommi uno dei due fattori tante volte quanto l'altro) e se puoi calcolare una potenza come serie di prodotti, allora puoi calcolare una potenza anche con sole addizioni.
Per esempio 3^5 si può scrivere nel seguente modo:3^5 = 3x3x3x3x3 = (((3x3)x3)x3)x3
Il ciclo interno semplifica di volta in volta una parentesi, partendo dalla più interna.
Calcolato 3x3=3+3+3=9, la variabile risultato assume il valore di 9.
A questo punto il ciclo interno riparte usando 9 come fattore e sempre 3 come secondo fattore (che è la base, usata come limite al for interno) e calcola 9x3=9+9+9, il risultato di 27 è poi scritto dentro la variabile risultato.
Nuovamente il ciclo interno riparte usando 27 e 3 come fattori calcolando 27x3=27+27+27 = 91
E così via per un totale di volte pari all'esponente meno 1 (ovvero pari al numero di moltiplicazioni).