Cod sursa(job #562966)

Utilizator Luca.LiviuLuca Liviu Luca.Liviu Data 24 martie 2011 10:02:52
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.36 kb
#include <stdio.h>
#include <stdlib.h>
const int m = 1999999973;
int main () {

	long long sol=1,a;
	unsigned int i,n,p;
	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",sol);
	
	return 0;
}