Cod sursa(job #703067)

Utilizator alexdmotocMotoc Alexandru alexdmotoc Data 2 martie 2012 10:45:20
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.52 kb
#include <cstdio>

using namespace std;

#define MOD 1999999973

long long half;

long long powe (long long a , long long b)
{
	if (b == 0)
		return 1;
	
	half = powe (a , b / 2);
	
	if (b % 2 == 0)
		return (half * half) % MOD;
	
	else return ((half * half) % MOD * a) % MOD;
}


int main ()
{
	freopen ("lgput.in" , "r" , stdin);
	freopen ("lgput.out" , "w" , stdout);
	
	long long N , P;
	
	scanf ("%lld %lld" , &N , &P);
	
	long long rez = powe (N , P);
	
	printf ("%lld" , rez);
	
	return 0;
}