Cod sursa(job #2069856)

Utilizator alina13mAlinaaa alina13m Data 18 noiembrie 2017 21:45:51
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.4 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, p / 2) % Modulo;	
	} else if (p % 2 == 1) {
		return logaritmExpo(n * n, (p - 1) / 2) * n % Modulo;
	}

}

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