Cod sursa(job #3132476)

Utilizator arapu.andreiArapu Andrei arapu.andrei Data 22 mai 2023 20:41:53
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.45 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*a % 1999999973, b / 2);
	else return a*exp(a, b -1) % 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();
}