Cod sursa(job #562960)

Utilizator Luca.LiviuLuca Liviu Luca.Liviu Data 24 martie 2011 10:00:34
Problema Ridicare la putere in timp logaritmic Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.35 kb
#include <stdio.h>
#include <stdlib.h>
int main () {

	long long m=1999999973,sol=1,a;
	unsigned int i,n,p;
	freopen ("lgput.in","r",stdin);
	freopen ("lgput.out","w",stdout);
	
	scanf ("%lld %lld",&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",sol);
	
	return 0;
}