Cod sursa(job #947558)

Utilizator robert_stefanRobert Stefan robert_stefan Data 7 mai 2013 19:56:52
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.46 kb
#include<fstream>
#include<string.h>

using namespace std;

ifstream in("lgput.in");
ofstream out("lgput.out");

long long n, p, a, i, sol=1;

const int MODULO = 1999999973;

int main()
{
	in>>n>>p;
	/*a=n;
	for(i=0; (1<<i)<=p; ++i)
	{
		if( ((1<<i)&p)>0)
			sol=(sol*a)%MODULO;
		a=(a*a)%MODULO;
	}*/
	while(p)
	{
		if(p%2==1)
			sol=(sol*n)%MODULO;
		n=(n*n)%MODULO;
		p/=2;
	}
	out<<sol<<'\n';
	in.close();
	out.close();
	return 0;
}