Cod sursa(job #536234)

Utilizator Catah15Catalin Haidau Catah15 Data 18 februarie 2011 13:52:22
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.47 kb
#include <fstream>
#define MOD 1999999973
#define LL long long
using namespace std;

LL power(LL a, LL n)
{
	if(n == 0)
		return 1;
	
	LL halfpower = power(a, n / 2) % MOD;
	
	if(n % 2)
		return (((halfpower * halfpower) % MOD) * a) % MOD;
	else
		return (halfpower * halfpower) % MOD;
	
}

int main()
{
	ifstream f("lgput.in");
	ofstream g("lgput.out");
	
	LL a, n;
	
	f >> a >> n;
	
	g << power(a, n);
	
	f.close();
	g.close();
	
	return 0;	
}