Cod sursa(job #180639)
| Utilizator | Data | 17 aprilie 2008 12:22:33 | |
|---|---|---|---|
| Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.42 kb |
#include <stdio.h>
const int m=1999999973;
int n,p;
int put (int n,int p)
{
if (p==0)
return 1;
else if (p%2==0)
return (put (n*n,p/2))%m;
else if (p%2==1)
return (n*put (n*n,(p-1)/2))%m;
}
int main ()
{
freopen("lgput.in","r",stdin);
freopen("lgput.out","w",stdout);
long long d;
scanf ("%d%d",&n,&p);
d=put (n,p);
printf ("%lld",d);
return 0;
}
