Cod sursa(job #1914944)

Utilizator Constantin.Dragancea Constantin Constantin. Data 8 martie 2017 19:03:22
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.48 kb
#include <bits/stdc++.h>
#define m 1999999973
#define ull unsigned long long
using namespace std;

ull ans,n,p;

int lgput(ull x, ull j){
    ull ans=1;
    if (j==0) return ans%m;
    else if (j==1) return x%m;
    else {
        if (j%2==1) ans*=x*lgput(x*x,j/2)%m;
        else ans*=lgput(x*x,j/2)%m;
        return ans%m;
    }
}

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