Cod sursa(job #650832)

Utilizator andreioneaAndrei Onea andreionea Data 18 decembrie 2011 23:50:43
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include <fstream>
#define INFILE "lgput.in"
#define OUTFILE "lgput.out"
#define MODULO 1999999973
using namespace std;

long long putere(long long baza, long long exponent)
{
	long long aux = baza % MODULO;
	long long ret = 1;
	while (exponent) {
		if (exponent & 1)
			ret = (ret * aux) % MODULO;
		aux = (aux * aux) % MODULO;
		exponent >>= 1;
	}
	return ret;
}

int main()
{
	long long baza, exponent;
	ifstream fin (INFILE);
	ofstream fout (OUTFILE);
	fin >> baza >> exponent;
	fout << putere(baza, exponent) << endl;
	fin.close();
	fout.close();
}