Cod sursa(job #1751540)

Utilizator dtoniucDaniel Toniuc dtoniuc Data 1 septembrie 2016 15:42:13
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.49 kb
#include <fstream>

#define MOD 1999999973

using namespace std;

long long ComputePow(int n, int p);

int main()
{
	ifstream fin;
	ofstream fout;
	fout.open("lgput.out");
	fin.open("lgput.in");

	int n, p;
	fin >> n >> p;

	fout << ComputePow(n, p);

	fin.close();
	fout.close();
	return 0;
}

long long ComputePow(int n, int p)
{
	long long x = n;
	long long  sol = 1;

	for(int i = 0; (1 << i) <= p; i++)
	{
		if((1 << i) & p)
		{
			sol = (sol * x) % MOD;
		}

		x = (x * x) % MOD;
	}

	return sol;
}