Cod sursa(job #1774287)

Utilizator DevilOnFieldTudor Horia Niculescu DevilOnField Data 8 octombrie 2016 19:31:31
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include<stdio.h>

#define MOD 1999999973

long long int exp(long long int n, long long int k)
{
    if(k == 1) {
        return n % MOD;
    }
    if(k & 1 == 1) {
        return (((exp(n, k / 2) * exp(n, k / 2)) % MOD) * n) % MOD;
    } else {
        return (exp(n, k / 2) * exp(n, k / 2)) % MOD;
    }
}

int main ()
{
    long long int n, k;

    FILE *in, *out;
    in = fopen("lgput.in", "r");
    out = fopen("lgput.out", "w");

    fscanf(in, "%lld%lld", &n, &k);

    fprintf(out, "%lld", exp(n, k));

    fclose(in);
    fclose(out);

    return 0;
}