Cod sursa(job #148053)

Utilizator swift90Ionut Bogdanescu swift90 Data 3 martie 2008 21:01:08
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.34 kb
#include<stdio.h>
#define rest 1999999973
int main(){
	freopen("lgput.in","r",stdin);
	freopen("lgput.out","w",stdout);
	long long n,p,a,b;
	scanf("%lld%lld",&n,&p);
	--p;
	b=a=n;
	while(p){
		if(p%2){
			b=(b*a)%rest;
			--p;
		}
		a=(a*a)%rest;
		p>>=1;
	}
	printf("%lld\n",b);
	fclose(stdin);
	fclose(stdout);
	return 0;
}