Cod sursa(job #459068)

Utilizator darrenRares Buhai darren Data 27 mai 2010 18:28:33
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.45 kb
#include<fstream>
using namespace std;

const long long MOD = 1999999973;

long long dub(long long x)
{
	return (x * x) % MOD;
}
long long pow(long long a, long long b)
{
	if (b == 0)
		return 1;
	if (b == 1)
		return a;
	if (b % 2 == 0)
		return dub(pow(a, b / 2));
	return (a * dub(pow(a, b / 2))) % MOD;
}

long long n, p;
int main()
{
	ifstream fin("lgput.in");
	ofstream fout("lgput.out");
	fin >> n >> p;
	fout << pow(n, p);
}