Cod sursa(job #3259334)

Utilizator akumariaPatrascanu Andra-Maria akumaria Data 25 noiembrie 2024 21:13:40
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.48 kb
#include <stdio.h>

#define MAX 1999999973

long long log_exp(long long n, long long p) {
    if (p == 0)
        return 1;

    if (p % 2)
        return n * log_exp(n * n, p>>1) % MAX;
    else
        return log_exp(n * n, p>>1) % MAX;
}

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

    long long n, p;

    scanf("%lld %lld", &n, &p);

    long long res = log_exp(n, p);
    printf("%lld\n", res);

    return 0;
}