Cod sursa(job #147057)

Utilizator ProtomanAndrei Purice Protoman Data 2 martie 2008 15:41:31
Problema Ridicare la putere in timp logaritmic Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.33 kb
#include <stdio.h>
#define imp 1999999973
long long n,p,r;

int main()
{
	freopen("lgput.in","r",stdin);
	freopen("lgput.out","w",stdout);
	scanf("%lld %lld",&n,&p);
	while (p>1)
	{
		n=(n*n)%imp;
		if (p%2==1)
			r=(r*n)%imp;
		p=p/2;
	}
	printf("%lld",(n*r)%imp);
	fclose(stdin);
	fclose(stdout);
	return 0;
}