Cod sursa(job #149491)
Utilizator | Data | 5 martie 2008 19:45:35 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 10 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.39 kb |
#include <stdio.h>
#define m 1999999973
int n,p;
int putere (int n,int p)
{
if (p == 0)
return 1;
else
if (p % 2 == 0)
return putere(n*n,p/2) % m;
else
return (n * putere(n*n,(p-1) / 2)) % m;
}
int main ()
{
freopen("lgput.in","r",stdin);
freopen("lgput.out","w",stdout);
scanf("%d %d",&n,&p);
printf("%d",putere(n,p));
return 0;
}