Cod sursa(job #443299)

Utilizator S7012MYPetru Trimbitas S7012MY Data 16 aprilie 2010 17:35:00
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.5 kb
#include <cstdio>
#define REST 1999999973

long long putere(long long x,long long y) {
	long long rezultat=1,baza=x,exponent=y;
	while(exponent>0) {
		while(!(exponent%2)) {
			exponent>>=1;
			baza=(baza*baza)%REST;
		}
		exponent--;
		rezultat=(rezultat*baza)%REST;
	}
	return rezultat;
}

int main() 
{
	long long n,p;
	FILE *f=fopen("lgput.in","r");
	FILE *g=fopen("lgput.out","w");
	fscanf(f,"%lld %lld",&n,&p);
	fprintf(g,"%lld",putere(n,p));
	fclose(f);
	fclose(g);
	return 0;
}