Cod sursa(job #538733)

Utilizator scipianusFMI Ciprian Olariu scipianus Data 21 februarie 2011 21:05:51
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.52 kb
#include<fstream>
using namespace std;
long long RidicareLaPutere(long long x,long long n)
{
	long long p=1;
	while(n>0)
	{
		if (n & 1) 
		{
			p=((p%1999999973)*(x%1999999973))%1999999973;
			n--;
		}
		x=((x%1999999973)*(x%1999999973))%1999999973;
		n=n>>1;
	}	
	return p;
}

int main()
{
	long long put;
	long long n,p;
	ifstream fin("lgput.in");
	fin>>n>>p;
	fin.close();
	put=RidicareLaPutere(n,p);
	put=put%1999999973;
	ofstream fout("lgput.out");
	fout<<put<<"\n";
	fout.close();
	return 0;
}