Cod sursa(job #690108)
Utilizator | Albu Alexandru alexalbu95 | Data | 25 februarie 2012 11:02:26 |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.4 kb |
#include <cstdio>
const char iname[]="lgput.in";
const char oname[]="lgput.out";
const int mod=1999999973;
long long n, p, sol=1, i;
int main()
{
freopen(iname, "r", stdin);
freopen(oname, "w", stdout);
scanf("%lld %lld", &n, &p);
for(i=0; (1<<i)<=p; ++i)
{
if(((1<<i) & p)>0) sol=(sol*n)%mod;
n=(n*n)%mod;
}
printf("%lld\n", sol);
}