Cod sursa(job #675894)

Utilizator lucian666Vasilut Lucian lucian666 Data 8 februarie 2012 13:50:46
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.47 kb
#include<iostream>
#include<fstream>
using namespace std;
int putere_binara(int baza,long long int expo)
{
	int i;
//	baza%=n;
	int b[50],nrb=0;
	for(;expo;expo/=2)
		b[++nrb]=expo%2;
	int rez=1;
		for(i=nrb;i;i--)
		{
			rez=1LL*rez*rez%1999999973;
			if(b[i])
				rez=1LL*rez*baza%1999999973;
		}
		return rez;
}
int main()
{
	ifstream fin("lgput.in");
	ofstream fout("lgput.out");
	int baza;
	long long int expo;
		fin>>baza>>expo;
		fout<<putere_binara(baza,expo);
		return 0;
}