Cod sursa(job #3254863)

Utilizator not_anduAndu Scheusan not_andu Data 9 noiembrie 2024 09:31:28
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.66 kb
#include <bits/stdc++.h>

using namespace std;

#define INFILE "lgput.in"
#define OUTFILE "lgput.out"

typedef long long ll;

const ll MOD = 1999999973;

ll ridicare(ll baza, ll putere){
    baza %= MOD;
    ll ans = 1;
    while(putere > 0){
        if(putere & 1) ans = ans * baza % MOD;
        baza = baza * baza % MOD;
        putere >>= 1;
    }
    return ans % MOD;
}

void solve(){

    ll n, p; cin >> n >> p;

    cout << ridicare(n, p) << '\n';

}

int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0), cout.tie(0);
    freopen(INFILE, "r", stdin);
    freopen(OUTFILE, "w", stdout);
    solve();
    return 0;
}