Cod sursa(job #2803530)

Utilizator ItsTheFBIaaa Dani ItsTheFBI Data 20 noiembrie 2021 10:27:19
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.75 kb
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <string>

#define mod 1999999973LL;

int exp(int n, int p) {
        int ret = 1;
        int c = n;

        for (int i = 0; (1 << i) <= p; ++i) {

                if (((1 << i) & p) > 0)
                        ret = 1LL * ret * c % mod;
                c = 1LL * c * c % mod;

        }

        return ret;
}

int main(int argc, char** argv) {
        freopen("lgput.in", "r", stdin);
        freopen("lgput.out", "w", stdout);

        // Obligam cout si cin sa respecte stdin si stdout
        std::ios_base::sync_with_stdio(true);

        uint64_t a, b;
        std::cin >> a >> b;

        std::cout << exp(a, b);

        return 0;
}