Cod sursa(job #631507)

Utilizator SCBbestofSocaciu-Cumpanasu Bogdan SCBbestof Data 8 noiembrie 2011 12:10:28
Problema Ridicare la putere in timp logaritmic Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.43 kb
#include < cstdio>
#include < string.h>

using namespace std;
const int n_max = 10001;
const int m = 1999999973;
unsigned int i,n,p;
long long int a,sol=1;
int main()
{
	freopen("lgput.in","r",stdin);
	freopen("lgput.out","w",stdout);
	scanf("%d%D",&n,&p);
	a=n;
	for( i = 0 ; (1<<i) <= p; ++i )
	{
		if (( (1<<i) & p ) > 0 )
		{
			sol = ( sol * a ) % m ;
		}
		a = ( a * a ) % m ;
	}
	printf("%lld\n",sol);
	return 0;
}