Cod sursa(job #2983852)

Utilizator XTrim07Florea Andrei XTrim07 Data 23 februarie 2023 10:11:05
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>
using namespace std;

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

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

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

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