Cod sursa(job #1943979)

Utilizator DimaTCDima Trubca DimaTC Data 28 martie 2017 21:43:13
Problema Ridicare la putere in timp logaritmic Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.42 kb
#include<iostream>
#include<fstream>
#define x 1999999973
using namespace std;
long long n,p;

ifstream fin("lgput.in");
ofstream fout("lgput.out");

long long putere(long long n, long long p) {
	if (p==0) return 1;
	else {	
	if (p==1) return n%x;
	if (p%2==0) return putere(n,p/2)*putere(n,p/2)%x;
	if (p%2==1) return putere(n,p-1)*n%x; 
	}
}
int main(){
	cin >>n>>p;
   
	cout << putere(n,p);
	
	return 0;
}