Cod sursa(job #2528680)

Utilizator ardutgamerAndrei Bancila ardutgamer Data 22 ianuarie 2020 13:06:55
Problema Ridicare la putere in timp logaritmic Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.36 kb
#include <iostream>

using namespace std;

const int MOD = 1999999973;

int lgput(int n, int p)
{
	int a = n; //n^(2^i)
	int sol = 1;
	for (int i = 0; (1 << i) <= p; i++)
	{
		if ((1 << i) & p)
			sol = (sol * a) % MOD;
		a *= a;
	}
	return (sol % MOD);
}

int main()
{
	int n, p;
	cin >> n >> p;
	cout << lgput(n, p) << "\n";
	return 0;
}