Cod sursa(job #703050)

Utilizator alexdmotocMotoc Alexandru alexdmotoc Data 2 martie 2012 10:40:31
Problema Ridicare la putere in timp logaritmic Scor 30
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 * 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 % MOD);
	
	return 0;
}