Cod sursa(job #2153087)

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

using namespace std;

const long long MOD = 1999999973;

long long lgpow(long long base, long long 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) (base * base)) % MOD, exp / 2))  % MOD;
}

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

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

    return 0;
}