Cod sursa(job #2069871)

Utilizator alina13mAlinaaa alina13m Data 18 noiembrie 2017 21:57:09
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.42 kb
#include <fstream>

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

long logaritmExpo(long n, 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;
}