Cod sursa(job #1342844)

Utilizator daianapeterPeter Daiana daianapeter Data 14 februarie 2015 16:18:24
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.42 kb
#include<fstream>
using namespace std;
int main()
{
	ifstream fin("lgput.in");
	ofstream fout("lgput.out");
	long n,p,baza,rez;
	  fin>>n>>p;
	  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*baza)%1999999973;
				 p--;
				 } 
	fout<<rez;
	return 0;
}