Cod sursa(job #1396410)

Utilizator Aavatar36Russu Vadim Aavatar36 Data 22 martie 2015 14:59:54
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.46 kb
#include <fstream>
#include <iostream>
#define modul 1999999973
std::ifstream fin("lgput.in");
std::ofstream fout("lgput.out");


int put(int x, int n) {
	long long int res = 1;
	long long int a = (long long int) x;
	for (int i = 0; (1 << i) <= n; ++i) {
		if (((1 << i)&n) > 0) {
			res = (res % modul) * a;
			res %= modul;
		}
		a = (a * a) % modul;
	}
	return res;
}


int main() {

	int a, b;
	fin >> a >> b;
	fout << put(a, b);

	return 0;
}