Cod sursa(job #932636)

Utilizator swim406Teudan Adina swim406 Data 29 martie 2013 08:31:16
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.42 kb
#include <stdio.h>
#define MOD 1999999973

using namespace std;

int main() {
    freopen ("lgput.in", "r", stdin);
    freopen ("lgput.out", "w", stdout);
    int N, P;
    scanf ("%d %d", &N, &P);
    long long a = N, sol = 1;
    for (int i = 0; (1<<i) <= P; ++i) {
        if (((1<<i) & P) > 0)
            sol = (sol * a) % MOD;
        a = (a * a) % MOD;
    }
    printf ("%lld\n", sol);
    return 0;
}