Cod sursa(job #562549)

Utilizator space.foldingAdrian Soucup space.folding Data 23 martie 2011 12:54:15
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.45 kb
#include <fstream>
using namespace std;
#define MOD 1999999973;

long long exp(long long N, long long P)
{
	long long b=N, result = 1;
	for(long long i=0; i<63; i++)
	{
		if(P&1)
			result = (result * b) % MOD;
		P=P>>1;
		b = (b * b) % MOD;
	}
	return result;
}


int main()
{
	long long N = 2, P = 16;
	ifstream fin("lgput.in");
	fin>>N>>P;
	fin.close();
	ofstream fout("lgput.out");
	fout<<exp(N, P);
	fout.close();
	return 0;
}