Cod sursa(job #779939)

Utilizator crushackPopescu Silviu crushack Data 19 august 2012 15:51:54
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.42 kb
#include <stdio.h>

const char IN[]="lgput.in",OUT[]="lgput.out";
int mod=1999999973;

int N,P;

int pow(int x,int p)
{
	int sol=1,i;
	for (i=0;(1<<i)<=p && i<32;++i)
	{
		if ((1<<i)&p)
			sol=1LL*sol*x%mod;
		x=1LL*x*x%mod;
	}
	return sol;
}

int main()
{
	freopen(IN,"r",stdin);
	scanf("%d%d",&N,&P);
	fclose(stdin);
	freopen(OUT,"w",stdout);
	printf("%d\n",pow(N,P));
	fclose(stdout);
	return 0;
}