Cod sursa(job #295876)

Utilizator CiurelVictorCiurel Victor CiurelVictor Data 3 aprilie 2009 19:02:31
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.36 kb
#include<stdio.h>

unsigned long n,p,i;
long long prod,a;
long x;

int main()
{
	freopen("lgput.in","r",stdin);
	freopen("lgput.out","w",stdout);

	scanf("%lu %lu",&n,&p);

	x=1999999973;

	a=n;

	prod=1;

	for(i=0;(1<<i)<=p;i++)
	{
	       if((1<<i)&p)
		       prod=(prod*a)%x;
	       a=(a*a)%x;
	}

	printf("%lld\n",prod);

	return 0;
}