Cod sursa(job #2699647)

Utilizator VasAlexVasiluta Alex VasAlex Data 25 ianuarie 2021 13:00:58
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.54 kb
#include <bits/stdc++.h>
using namespace std;
#ifndef offline
string nume_problema = "lgput";
ifstream fin(nume_problema + ".in");
ofstream fout(nume_problema + ".out");
#define cin fin
#define cout fout
#endif

int64_t lgput(int64_t b, int64_t p, const int64_t mod = 1999999973)
{
	const int64_t unu = 1;
	int64_t a = b, sol = 1;
	for (int64_t i = 0; (unu << i) <= p; i++)
	{
		if ((p & (unu << i)) > 0)
			sol = (sol * a) % mod;
		a = (a * a) % mod;
	}
	return sol;
}

int main()
{
	int64_t n, m;
	cin >> n >> m;
	cout << lgput(n, m);
	return 0;
}