Cod sursa(job #1838320)

Utilizator mihai.alphamihai craciun mihai.alpha Data 31 decembrie 2016 18:09:05
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include <cstdio>
FILE *fin, *fout;
#define Q 1999999973

inline long long rid(long long n, long long a)  {
    long long p = 1;
    while(a > 0)  {
        if(a & 1 == 1)
            p = p % Q, p *= n, p %= Q;
        n = n % Q;
        n *= n;
        n %= Q;
        a >>=1;
    }
    return p % Q;
}

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