Cod sursa(job #146693)
Utilizator | Data | 1 martie 2008 23:43:29 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.4 kb |
#include<stdio.h>
#define rest 1999999973
long long res, n, p;
int main()
{
freopen ("lgput.in", "r", stdin);
freopen ("lgput.out", "w", stdout);
scanf("%lld %lld", &n, &p);
res=1;
while(p){
if( p&1 ){
res=(res*n)%rest;
p--;
}
n=(n*n)%rest;
p>>=1;
}
printf("%lld\n", res);
return 0;
}