Cod sursa(job #674267)

Utilizator luckyme91wiz kid luckyme91 Data 5 februarie 2012 22:26:37
Problema Ridicare la putere in timp logaritmic Scor 30
Compilator c Status done
Runda Arhiva educationala Marime 0.46 kb
#include <stdio.h>
#define NMAX 1999999973

long long int power (long long int x, long long int y)
{
	if (y == 1)
		return x % NMAX;
	if (y % 2 == 0)
		return ((power (x, y/2)%NMAX)*(power(x, y/2)%NMAX))%NMAX;
	else
		return ((power (x, y/2)%NMAX)*(power(x, y/2)%NMAX)*(x%NMAX))%NMAX;

}
int main () {

freopen ("lgput.in", "r", stdin);
freopen ("lgput.out", "w", stdout);

long long int x, y;
scanf ("%lld %lld", &x, &y);
printf ("%lld", power(x, y)%NMAX);
return 0;
}