Cod sursa(job #1194231)

Utilizator G_DavidGherghita David G_David Data 3 iunie 2014 10:36:32
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.49 kb
#include <fstream>
using namespace std;

long long pow(long long x, long long n)
{
	long long CONST = 1999999973;
	long long p;
	
	/*if (n == 0)
		return 1;*/
	if (n == 1)
		return x % CONST;
	p = pow(x, n/2) % CONST;
	if (n % 2 == 0)
		return (p * p) % CONST;
	else 
		return (((x * p) % CONST) * p) % CONST;
}

int main()
{
	long long x, n;
	ifstream infile ("lgput.in");
	ofstream outfile ("lgput.out");
	
	infile >> x >> n;
	
	outfile << pow(x, n);
	
	outfile.close();
}