Cod sursa(job #1753868)

Utilizator bogdanluncasubogdan bogdanluncasu Data 7 septembrie 2016 11:37:33
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.41 kb
#include<iostream>
#include<math.h>
using namespace std;
int t=1999999973;
long long exp(long long x,long long n){
	if(n<0)return exp(1/x,-n);
	else if(n==0)return 1;
	else if(n==1)return x;
	else if(n%2==0)return exp(x*x,n/2);
	else return x*exp(x*x,(n-1)/2);
}
int main(){
	freopen("lgput.in", "r", stdin);
	freopen("lgput.out", "w", stdout);
	int n,p,y=1;
	cin>>n>>p;
    cout<<exp(n,p)%t;
}