Cod sursa(job #150068)

Utilizator scvalexAlexandru Scvortov scvalex Data 6 martie 2008 15:49:34
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.49 kb
#include <iostream>
#include <fstream>

using namespace std;

unsigned long N,
			  P;

int main(int argc, char *argv[]) {
	ifstream fin("lgput.in");
	fin >> N >> P;
	fin.close();

	unsigned long long i = (long long)1 << 32;
	unsigned long long sol = 1;
	while (i) {
		sol = (sol * sol) % 1999999973;
		if (i & P)
			sol = (sol * N) % 1999999973;
		//cout << i << " " << (i & P) << " - " << sol << endl;
		i >>= 1;
	}

	ofstream fout("lgput.out");
	fout << sol << endl;
	fout.close();

	return 0;
}