Cod sursa(job #1512728)

Utilizator andreea_zahariaAndreea Zaharia andreea_zaharia Data 28 octombrie 2015 15:53:54
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.5 kb
#include <cstdio>

long long A, B;

long long lgput (long long b, long long exp, long long mod = 1999999973) {
    b %= mod;

    if (exp == 1) {
        return b;
    }

    if (exp % 2 == 1) {
        return (b * lgput (b, exp - 1, mod)) % mod;
    }

    return lgput ((b * b) % mod, exp / 2, mod);
}

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

    scanf ("%lld%lld", &A, &B);
    printf ("%lld", lgput (A, B));

    return 0;
}