Cod sursa(job #392582)

Utilizator nandoLicker Nandor nando Data 7 februarie 2010 19:43:48
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.47 kb
#include <fstream>

using namespace std;

unsigned pow(int n,int k){
	unsigned tmp;
	if(k==0){
		return 1;
	}else if(k&1){
		tmp=pow(n,(k-1)>>1)%1999999973;
		return (n*tmp*tmp)%1999999973;
	}else if(!(k&1)){
		tmp=pow(n,k>>1)%1999999973;
		return (tmp*tmp)%1999999973;
	}
}
int main(){
	fstream fin("lgput.in",ios::in);
	fstream fout("lgput.out",ios::out);
	unsigned n,k;
	fin>>n>>k;
	fout<<pow(n%1999999973,k);
	fin.close();
	fout.close();
	return 0;
}