Răspuns:
#include <iostream>
using namespace std;
int a,b,c;
int putere(int a, int b, int c)
{
if (b==0) return 1;
else
{
if (b%2==0) return ((putere(a,b/2,c)%c)*(putere(a,b/2,c)%c))%c;
else return ((a%c)*(putere(a,b-1,c)%c))%c;
}
}
int main()
{
cin >> a >> b >> c;
cout << putere(a,b,c);
}
Explicație:
era de aşteptat să aplicăm recursia... e mai simplă logica rezolvării.
ce este de comentat?... sfaturile sunt date în enunţ. Am mai adăugat restul şi de expresia de la return nu numai pentru fiecare factor, deoarece rezultatul produsului poate să fie mai mare ca c