Cod sursa(job #278248)

Utilizator stefysStefan stefys Data 12 martie 2009 10:38:29
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;

const unsigned long MODULO = 1999999973;

unsigned long long mypow (unsigned long long base, unsigned long long exp)
{
	unsigned long long ret=1;
	for (; exp; exp>>=1) {
		if (exp&1) ret = (ret*base)%MODULO;
		base = (base*base)%MODULO;
	}
	return ret;
}

int main ()
{
	unsigned long long N,P;
	ifstream in("lgput.in");
	ofstream out("lgput.out");
	in >> N >> P;
	in.close();
	out << mypow(N,P) << '\n';
	out.close();
	return 0;
}