Cod sursa(job #2278787)

Utilizator Raoul_16Raoul Bocancea Raoul_16 Data 8 noiembrie 2018 16:00:24
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.46 kb
#include <fstream>
const std :: string programName = "lgput";
std :: ifstream f(programName  + ".in");
std :: ofstream g(programName  + ".out");
const int64_t MOD = 1999999973; 
int logt(int, int);
int main(void) {
	int N, P;
	f >> N >> P;
	g << logt(N, P);
	return 0x0;
}
int logt(int N, int P) {
	int64_t Xcopy = N, sol = 1;
	for (int i = 0; (1 << i) <= P; ++i) {
		if ((1 << i) & P) 
			sol = (sol * Xcopy) % MOD;
		Xcopy = (Xcopy * Xcopy) % MOD;
	}	
	return sol;
}