Cod sursa(job #2725096)

Utilizator KakaDuuTurbut Sebastian KakaDuu Data 18 martie 2021 14:02:29
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.53 kb
//#include <iostream>
#include <fstream>

#define ll long long
#define modulo 1999999973
using namespace std;

ll exp(ll x, ll n) {
    if (n == 0) return 1;
    if (n == 1) return x;
    if (n % 2 == 0) return exp(x * x % modulo, n / 2);
    return x * exp(x * x % modulo, (n - 1) / 2) % modulo;
}

int main() {
    ifstream fin("lgput.in");
    ofstream fout("lgput.out");
    ll p, n;
    /*cout << "baza=";
    cin >> x;
    cout << "exponent=";
    cin >> n;
    cout << exp(x, n);*/
    fin >> n >> p;
    fout << exp(n, p);
    return 0;
}