Cod sursa(job #3132465)

Utilizator arapu.andreiArapu Andrei arapu.andrei Data 22 mai 2023 20:32:12
Problema Ridicare la putere in timp logaritmic Scor 30
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.47 kb
#include <iostream>
#include <fstream>
using namespace std;

long long exp(long long a,long long b) {
	if (a<0)
		return exp(1 / a, -b);
	if (b == 0)return 1;
	else
		if (b == 1)return a;

	if (b % 2 == 0)return exp(a, b / 2)*exp(a, b / 2)%1999999973;
	else return a*exp(a, b / 2)*exp(a, b / 2) % 1999999973;

}

int main() {
	long long n, p;

	ifstream fi("lgput.in");

	fi >> n >> p;
	fi.close();
	ofstream fo("lgput.out");
	fo << exp(n, p);
	fo.close();
}