Cod sursa(job #655203)

Utilizator AndupkIonescu Alexandru Andupk Data 1 ianuarie 2012 19:10:03
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.5 kb
#include<fstream>
using namespace std;
long long BigMod(long long B,long long P,long long M)
{
 if(P==0) return 1;
 
 if(B==0) return 0;
 
 if( B==0 || P==1  ) return B%M;
 
 if(M==1) return 0;
 
 if(P%2==0) 
	  {    long long aux;
		   aux=BigMod(B,P/2,M); 
		   return (aux*aux)%M;
	  }
   else
          return (BigMod(B,P-1,M) * (B%M))%M;
}
int main()
{
	ifstream in("lgput.in");
	ofstream out("lgput.out");
	long long M=1999999973,B,P;
	in>>B>>P;
	out<<BigMod(B,P,M);
	return 0;
}