Cod sursa(job #674254)
Utilizator | Data | 5 februarie 2012 21:53:17 | |
---|---|---|---|
Problema | Ridicare la putere in timp logaritmic | Scor | 30 |
Compilator | c | Status | done |
Runda | Arhiva educationala | Marime | 0.41 kb |
#include <stdio.h>
#define NMAX 1999999973
long long int power (int x, int y)
{
if (y == 1)
return x % NMAX;
if (y % 2 == 0)
return (power (x, y/2)%NMAX)*(power(x, y/2)%NMAX);
else
return (power (x, y/2)%NMAX)*(power(x, y/2)%NMAX)*(x%NMAX);
}
int main () {
freopen ("lgput.in", "r", stdin);
freopen ("lgput.out", "w", stdout);
int x, y;
scanf ("%d %d", &x, &y);
printf ("%lld", power(x, y)%NMAX);
return 0;
}