Cod sursa(job #293151)

Utilizator hurrycaneBogdan Gaza hurrycane Data 31 martie 2009 23:36:33
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.52 kb
#include<cstdio>
#define modulo 1999999973
#include<iostream>

using namespace std;

int N;

unsigned long long int lgput(int a,int b){
	if(b==0) return 1;

	if(b%2==0){
		unsigned long long int ab =  lgput(a,b/2)%modulo;
		return (ab*ab)%modulo;
	}else{
		unsigned long long int ab =  lgput(a,b/2)%modulo;
		return (((ab*ab)%modulo)*(a%modulo))%modulo;
	}
	
}

int main(){
	unsigned long long int x,y;
	freopen("lgput.in","r",stdin);
	freopen("lgput.out","w",stdout);
	scanf("%lld %lld",&x,&y);
	printf("%lld",lgput(x,y));
	return 0;
}