Cod sursa(job #2941729)

Utilizator AndreiBadAndrei Badulescu AndreiBad Data 18 noiembrie 2022 10:04:31
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.68 kb
//
//  main.cpp
//  Ridicare la putere in timp logaritmic (infoarena)
//
//  Created by Andrei Bădulescu on 18.11.22.
//

//#include <iostream>
#include <fstream>

using namespace std;

ifstream cin("lgput.in");
ofstream cout("lgput.out");

const long long M = 1999999973;

long long result, power;
long long n;

int main() {
    cin >> power;
    cin >> n;
    result = power;
    n--;
    
    while (n) {
        if ((n & 1) == 0) {
            n = n / 2;
            power = power * power;
            power = power % M;
        } else {
            n = n - 1;
            result = power * result;
            result = result % M;
        }
    }
    
    cout << result;
    return 0;
}