Cod sursa(job #2153080)

Utilizator ade_tomiEnache Adelina ade_tomi Data 5 martie 2018 22:35:02
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.51 kb
#include <iostream>
#include <fstream>

using namespace std;

const int MOD = 1999999973;

int lgpow(int base, int exp) {
    if (exp == 1) {
        return base;
    }

    if (exp % 2 == 0) { 
        return lgpow(((long long) (base * base)) % MOD, exp / 2);
    }

    return (long long) (base * lgpow(((long long) (exp * exp)) % MOD, exp / 2))  % MOD;
}

int main() {
    int base, exp;
    ifstream cin ("lgput.in");
    ofstream cout ("lgput.out");

    cin >> base >> exp; 
    cout << lgpow(base, exp);

    return 0;
}