Cod sursa(job #1350594)

Utilizator radudorosRadu Doros radudoros Data 20 februarie 2015 20:51:48
Problema Ridicare la putere in timp logaritmic Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.42 kb
#include <fstream>
#define MOD 1999999973
using namespace std;
ifstream fin("lgput.in");
ofstream fout("lgput.out");
long long exp(long long a, long long xp)
{
	if (xp == 1)
	{
		return a;
	}
	long long aux = (exp(a, xp / 2)) % MOD;
	if (xp % 2==1)
	{
		
		return (aux*aux) % MOD;
	}
	else
	{
		return (a*((aux*aux) % MOD) % MOD);
	}

}

int main()
{
	long long n, p;
	fin >> n >> p;
	fout << exp(n, p);
}