Cod sursa(job #2865747)

Utilizator ardutgamerAndrei Bancila ardutgamer Data 9 martie 2022 10:14:43
Problema Ridicare la putere in timp logaritmic Scor 90
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.58 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>

using namespace std;

ifstream fin("lgput.in");
ofstream fout("lgput.out");

typedef long long ll;

const int NMAX = 100005;
const ll MOD = 1999999973;

ll a, b;

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

void read()
{
	fin >> a >> b;
}

void solve()
{
	fout << lgput(a, b) << '\n';
}

int main()
{
	read();
	solve();
	return 0;
}