Cod sursa(job #504561)
Utilizator | Data | 28 noiembrie 2010 08:33:47 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.32 kb |
#include <stdio.h>
int s, m, n, p, i;
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 ("%d",s);
return (0);}