Cod sursa(job #2725093)

Utilizator KakaDuuTurbut Sebastian KakaDuu Data 18 martie 2021 14:00:56
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.57 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 exp(1 / x, -n);
    if (n == 0) return 1;
    if (n == 1) return x;
    if (n % 2 == 0) return exp(x * x, n / 2) % modulo;
    return exp(x * x, (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) % modulo;
    return 0;
}