Cod sursa(job #1229261)
Utilizator | Data | 16 septembrie 2014 20:19:32 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.43 kb |
#include <fstream>
using namespace std;
ifstream f("lgput.in");
ofstream g("lgput.out");
long long n,p,l,m=1999999973,x;
long long rec(int p)
{
l++;
long long u=1;
if (p==0)
return 1;
else
{
x=rec(p/2);
x=x%m;
u=x*x;
u=u%m;
if (p%2==1) u=u*n;
u=u%m;
return u;
}
}
int main()
{
f>>n>>p;
g<<rec(p)<<'\n';
return 0;
}