Cod sursa(job #2033267)

Utilizator tudormaximTudor Maxim tudormaxim Data 6 octombrie 2017 15:46:00
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator c Status done
Runda Arhiva educationala Marime 0.58 kb
#include <stdio.h>
#include <stdlib.h>

const long long mod = 999999973;

long long log_pow(long long n, long long p) {
    long long ans = 1;
    while (p > 0) {
        if (p & 1) ans = (1LL * ans * n) % mod;
        n = (1LL * n * n) % mod;
        p = p >> 1LL;
    }
    return ans;
}

int main(void) {
    FILE *fin = fopen("lgput.in", "r");
    FILE *fout = fopen("lgput.out", "w");
    long long n, p, ans;
    fscanf(fin, "%lld %lld", &n, &p);
    ans = log_pow(n, p);
    fprintf(fout, "%lld\n", ans);
    fclose(fin);
    fclose(fout);
    return 0;
}