Cod sursa(job #504562)
Utilizator | Data | 28 noiembrie 2010 08:35:17 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.33 kb |
#include <stdio.h>
int m, n, p, i;
long long s;
int main(){
freopen("lgput.in","r",stdin);
freopen("lgput.out","w",stdout);
scanf ("%d%d",&n,&p);
s=1; m = 1999999973;
for (i=0;(1<<i)<=p;i++){
if ( ((1<<i) & p)>0) s= (s*n)%m;
n=(n*n)%m; }
printf ("%lld",s);
return (0);}