Cod sursa(job #2930701)

Utilizator DobraVictorDobra Victor Ioan DobraVictor Data 29 octombrie 2022 12:18:19
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.47 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, "%llu %llu", &n, &p);
    n %= MOD;

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

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

    fclose(fin);
    fclose(fout);
}