Cod sursa(job #2128688)

Utilizator Constantin.Dragancea Constantin Constantin. Data 11 februarie 2018 22:31:57
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.4 kb
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define M 1999999973
ll n, p;

ll lgput(ll x, ll y){
    if (y==1) return x;
    else if (y%2) return ((x%M)*lgput(((x%M)*(x%M))%M,y/2))%M;
    else return lgput(((x%M)*(x%M))%M,y/2)%M;
}

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