Cod sursa(job #819945)

Utilizator radupetriselPetrisel Radu radupetrisel Data 19 noiembrie 2012 21:00:52
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.39 kb
#include <fstream>
using namespace std;

long long lgput (long long n, long long p){
	
	long long x=n;
	long long m=1999999973;
	
	if (p==0) return 1;
	if (p==1) return n;
	
	if (p%2==1) {p--; n=(n*x)%m;}
	return lgput ((n*x)%m, p/2);
}

int main (){
	
	ifstream f("lgput.in");
	ofstream g("lgput.out");
	
	long long n, p;
	f>>n>>p;
	
	g<<lgput (n, p);
	
	return 0;
}