Cod sursa(job #2983849)

Utilizator XTrim07Florea Andrei XTrim07 Data 23 februarie 2023 10:08:33
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.54 kb
#include <iostream>
#include <fstream>
using namespace std;

ifstream fin("lgput.in");
ofstream fout("lgput.out");

const int MAGIC_NO = 1999999973;
long long baza, exponent;

long long ridicare(long long a, long long b) {
    long long rest = 1;
    while (b) {
        if (b % 2 == 1) {
            rest = rest * a % MAGIC_NO;
            --b;
        }
        a = a * a % MAGIC_NO;
        b /= 2;
    }
    return rest;
}

int main() {
    fin >> baza >> exponent;
    fout << ridicare(baza, exponent);
    return 0;
}