Cod sursa(job #3001039)

Utilizator not_anduAndu Scheusan not_andu Data 13 martie 2023 10:25:21
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.52 kb
#include <fstream>

using namespace std;

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

ifstream fin (INFILE);
ofstream fout (OUTFILE);

int n, p;

int ridicarePutere(int a, int b){
    
    int rez = 1;

    while(b){
        if(b % 2 == 1)
            rez = (1ll * rez * a) % modulo;
            a = (1ll * a * a) % modulo;
            b /= 2;
    }

    return rez;
}

void solve(){

    fin >> n >> p;

    fout << ridicarePutere(n, p) << '\n';

}

int main(){
    solve();
    return 0;
}