Cod sursa(job #173054)
Utilizator | Data | 7 aprilie 2008 09:57:55 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 100 |
Compilator | c | Status | done |
Runda | Arhiva educationala | Marime | 0.35 kb |
#include <stdio.h>
const int Nmax=10000;
const int mod=1999999973;
int main(){
int i,n,p;
long long sol=1,a;
freopen("lgput.in","r",stdin);
freopen("lgput.out","w",stdout);
scanf("%d%d",&n,&p);
a=n;
for (i=0;(1<<i)<=p;++i){
if ( ((1<<i) & p) > 0)
sol= (sol * a) % mod;
a=(a * a) % mod;
}
printf("%lld\n",sol);
return 0;
}