Cod sursa(job #1160969)

Utilizator cbanu96Banu Cristian cbanu96 Data 30 martie 2014 22:18:48
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.49 kb
#include <cstdio>

using namespace std;

#define FILEIN "lgput.in"
#define FILEOUT "lgput.out"
#define MOD 1999999973

int main() {
    freopen(FILEIN, "r", stdin);
    freopen(FILEOUT, "w", stdout);

    unsigned long long int N, P, F, P0;
    scanf("%llu %llu", &N, &P0);

    F = 1; P = N;

    for ( int p = 0; (1 << p) <= P0; p++ ) {
        if ((1 << p) & P0) {
            F *= P;
            F %= MOD;
        }
        P *= P;
        P %= MOD;
    }

    printf("%llu\n", F);


    return 0;
}