Cod sursa(job #1943955)

Utilizator DimaTCDima Trubca DimaTC Data 28 martie 2017 21:33:50
Problema Ridicare la putere in timp logaritmic Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.39 kb
#include<iostream>
#define x 1999999973
using namespace std;
long long n,p;
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)%x*putere(n,p/2)%x;
	if (p%2==1) return putere(n,(p-1)/2)%x*putere(n,(p-1)/2)*n%x; 
	}
}
int main(){
	long long n,p;
	cin >>n>>p;
   
	cout << putere(n,p);
	
	return 0;
}