Cod sursa(job #1775006)

Utilizator DevilOnFieldTudor Horia Niculescu DevilOnField Data 9 octombrie 2016 18:17:48
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;
    }
    long long int gay = (exp(n, k / 2));
    if(k & 1 == 1) {
        return (((gay * gay) % MOD) * n) % MOD;
    } else {
        return (gay * gay) % 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;
}