Cod sursa(job #2033269)

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

const int mod = 999999973;

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

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