Cod sursa(job #2557416)

Utilizator Chr1styDescultu Cristian Chr1sty Data 25 februarie 2020 19:42:04
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.54 kb
#include <iostream>
#include <fstream>
using namespace std;
const int m = 1999999973;
int fast_exp(int base, int exponent) {
	int solution = 1;
	int a = base;
	for (int i = 0; (1 << i) <= exponent; ++i) {
		if (((1 << i) & exponent) > 0) {
			solution = (solution * a) % m;
		}
		a = (a * a) % m;
	}
	return solution;
}

int main() {
	int base, exponent;
 	ifstream myfile;
 	myfile.open("lgput.in");
 	ofstream outfile ("lgput.out");
 	myfile >> base >> exponent;
 	outfile << fast_exp(base, exponent);
 	myfile.close();
 	outfile.close();
	return 0;
}