Cod sursa(job #712409)

Utilizator NicuCJNicu B. NicuCJ Data 13 martie 2012 13:50:05
Problema Ridicare la putere in timp logaritmic Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.41 kb
#include <fstream.h>
#define mod 1999999973
ifstream f("lgput.in");
ofstream g("lgput.out");
int main()
{
	int baza, exponent, x, t=0, i, cifre[1000];
	long long p=1;
	f>>baza>>exponent;
	x=exponent;
	while(x)
	{
		cifre[t]=x%2;
		t++;
		x=x/2;
	}
	for(i=t-1; i>=0; i--)
	{
		if(cifre[i]==0)
		{
			p=p*p;
		}
		else
		{
			p=p*p*baza;
		}
		if(p>=mod)
		{
			p=p%mod;
		}
	}
	g<<p;
}