Cod sursa(job #371833)

Utilizator avram_florinavram florin constantin avram_florin Data 7 decembrie 2009 09:42:22
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.5 kb
//ridicare la putere in timp logaritmic
//infoarena -> arhiva educationala lgput
#include<cstdio>
using namespace std;
unsigned long long x,y;
unsigned long long n,m,p,r;
int main ()
{
	freopen("lgput.in" , "r" , stdin);
	freopen("lgput.out" , "w" , stdout);
	scanf("%d%d" ,  &n , &p);
	m=1999999973;
	r=1;
	while(p)
		{
			if(p%2)
				{
					r=(r*n)%m;
					n=(n*n)%m;
					p=p/2;
				}
				else
				{
					n=(n*n)%m;
					p=p/2;
				}
		}
	printf("%lld\n" , r);
	return 0;
}