Cod sursa(job #1367754)

Utilizator MarronMarron Marron Data 2 martie 2015 08:06:04
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.48 kb
#include <iostream>
#include <fstream>


const int MOD = 1999999973;
std::ifstream f("lgput.in");
std::ofstream g("lgput.out");


int pow(int n, int p)
{
	if (p == 0) {
		return 1;
	}
	if (p % 2 == 0) {
		return pow((int)((1LL * n * n) % MOD), p / 2) % MOD;
	}
	else {
		return (int)((1LL * n * pow((int)((1LL * n * n) % MOD), p / 2)) % MOD);
	}
}


int main()
{
	int n, p;
	f >> n >> p;
	g << pow(n, p) << std::endl;


	f.close();
	g.close();
	return 0;
}