Cod sursa(job #2930702)

Utilizator DobraVictorDobra Victor Ioan DobraVictor Data 29 octombrie 2022 12:19:32
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.49 kb
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>

const uint64_t MOD = 1999999973;

int main() {
    FILE* fin = fopen("lgput.in", "r");
    FILE* fout = fopen("lgput.out", "w");

    uint64_t n, p;
    fscanf(fin, "%lu %lu", &n, &p);
    n %= MOD;

    uint64_t pow = 1;
    while(p) {
        if(p & 1) {
            pow *= n;
            pow %= MOD;
        }
        n *= n;
        n %= MOD;
        p >>= 1;
    }

    fprintf(fout, "%lu", pow);

    fclose(fin);
    fclose(fout);
}