Cod sursa(job #664605)

Utilizator Victor10Oltean Victor Victor10 Data 20 ianuarie 2012 14:59:24
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.37 kb
#include <cstdio>
int v[100000000];
int main(){
	freopen("lgput.in","r",stdin);
	freopen("lgput.out","w",stdout);
	unsigned long long A,B=1,pow;
	unsigned long long i,j;
	scanf("%lld %lld",&pow,&B);
	A=1;
	for(i=1;B!=0;i++){
		v[i]=B%2;
		B/=2;
	}
	i--;
	for(j=i;j>0;--j){
		A=(A*A)%1999999973;
		if(v[j]==1){
			A=(A*pow)%1999999973;
		}
	}
	printf("%d",A);
}