Cod sursa(job #2069885)

Utilizator alina13mAlinaaa alina13m Data 18 noiembrie 2017 22:12:15
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.44 kb
#include <fstream>

std::ifstream cin("lgput.in");
std::ofstream cout("lgput.out");
long long N, P;
#define Modulo 1999999973

long long logaritmExpo(long long n, long long p) {
	if (p == 0) {
		return 1; 
	} if (p % 2 == 0) {
		return logaritmExpo(n * n % Modulo, p / 2);	
	} else if (p % 2 == 1) {
		return logaritmExpo(n * n % Modulo, (p - 1) / 2) * n % Modulo;
	}
	return 0;
}

int main() {
	cin >> N >> P;
	cout << logaritmExpo(N, P);
	return 0;
}