Cod sursa(job #171816)

Utilizator AndreyPAndrei Poenaru AndreyP Data 5 aprilie 2008 10:43:16
Problema Ridicare la putere in timp logaritmic Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.37 kb
#include<stdio.h>
#define c 1999999973
unsigned long long n,p,r;
void calc(unsigned long long p1)
{
	if(p1==1)
	{
		r=n%c;
		return;
	}
	calc(p1/2);
	if(p1%2)
		r=(r*r*n)%c;
	else
		r=(r*r)%c;
}
int main()
{
	freopen("lgput.in","r",stdin);
	freopen("lgput.out","w",stdout);
	scanf("%llu%llu",&n,&p);
	n=n%c;
	calc(p);
	printf("%llu\n",r);
	return 0;
}