Cod sursa(job #1342846)

Utilizator daianapeterPeter Daiana daianapeter Data 14 februarie 2015 16:20:13
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.46 kb
#include<fstream>
using namespace std;
int main()
{
	ifstream fin("lgput.in");
	ofstream fout("lgput.out");
	long long n,p,baza,rez;
	  fin>>n>>p;
	  n=n%1999999973;
	  rez=baza=n;
	  
	  if (p%2==1) rez=1; else {
	  rez=n*n;p=p/2;}
	  while(p>1)
	  
	  
	  if(p%2==0) {
	              rez=(rez%1999999973)*(rez%1999999973)%1999999973;
				  p=p/2;}
				  else
				 {rez=((rez%1999999973)*baza)%1999999973;
				 p--;
				 } 
	fout<<rez;
	return 0;
}