Cod sursa(job #2329717)

Utilizator HumikoPostu Alexandru Humiko Data 27 ianuarie 2019 12:51:20
Problema Ridicare la putere in timp logaritmic Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.54 kb
#include "pch.h"
#include <iostream>
#include <fstream>

using namespace std;

static const long long MOD = 1999999973;

long long lgput(int base, int exp)
{
	int res = 1;
	
	while (exp)
	{
		if (exp % 2)
		{
			exp--;
			res = base * res;
			if (res >= MOD) res -= MOD;
		}
		else
		{
			exp /= 2;
			base = base * base;
			if (base >= MOD) base -= MOD;
		}
	}

	return res;
}


int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0); cout.tie(0);

	long long n, p;
	cin >> n >> p;
	cout << lgput(n, p) << '\n';
}