Cod sursa(job #158184)

Utilizator znakeuJurba Andrei znakeu Data 13 martie 2008 15:05:34
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.37 kb
#include <stdio.h>
#define K 1999999973

int main()
{
	freopen("lgput.in","r",stdin);
	freopen("lgput.out","w",stdout);
	
	int n,p,i;
	long long x=0,rez=0;
	
	scanf("%d%d",&n,&p);
	
	x=n; rez=1;
	for (i=0; (1<<i) <= p; ++i)
	{
		if ((1<<i) & p)
			rez=(rez*x)%K;			
		x=(x*x)%K;
	}
	
	printf("%lld\n",rez);
	
	fclose(stdin);
	fclose(stdout);
	return 0;
}