Cod sursa(job #146650)
Utilizator | Data | 1 martie 2008 22:52:36 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.43 kb |
#include <fstream.h>
#define MAX 1999999973
long long a,b;
ifstream fin ("lgput.in");
ofstream fout ("lgput.out");
long long rec(long long i)
{
if (i==1)
return a%MAX;
if (i%2==0)
{
long long aux=rec(i/2)%MAX;
return ((aux)%MAX)*rec(i/2)%MAX;
}
else
return a*rec(i/2)%MAX;
}
int main ()
{
fin>>a>>b;
fout<<rec(b)<<"\n";
fin.close();
fout.close();
return 0;
}