Grazie ragazzi, effettivamente era questo il modo per farlo. Banale come pensavo, ma la mia testa ogni tanto gioca brutti scherzi!
Ora però, purtroppo ho un altro problema per quanto riguarda il calcolo del logaritmo.
Per definizione:
Dati due numeri interi positivi n e b, il logaritmo intero di n in base b è il massimo numero di volte in cui si può moltiplicare b per se stesso ottenendo un risultato non superiore a n.
Il seguente codice che ho scritto non porta ad alcun risultato (non viene proprio emesso l'output) e non capisco come mai.
La coppia (921,5), dovrebbe dare come risultato 4, perché 5^4 = 625 che è effettivamente minore di 921, mentre 5^5 = 3125 che è maggiore di 921.
Su queste spiegazioni, cosa c'è di sbagliato nel mio codice?
int n, b, pot = 0, ris, esp, i;
char prova[] = "(921,5)";
sscanf(prova, "(%d,%d)", &n, &b);
esp = 1;
while (pot <= n)
{
for (i = 1; i <= esp; i++)
pot = b*b;
esp++;
}
printf("Il risultato è: %d \n", esp);