Cod sursa(job #782182)

Utilizator alexarnautuArnautu Alexandru alexarnautu Data 26 august 2012 10:13:34
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include <cstdio>

using namespace std;

FILE * iFile;
FILE * oFile;

long long n, k;

void read()
{
    fscanf(iFile, "%lld%lld", &k, &n);
}

void solve()
{
    long long result = 1;

    while(n > 0)
    {
        if(n % 2 == 0)
        {
            k = k * k;
            n = n / 2;
        } else {
            result = (result * k) %1999999973;
            n--;
            k = k * k;
            n = n / 2;
        }
    }

    fprintf(oFile, "%lld", result);
}

int main()
{
    iFile = fopen("lgput.in", "r");
    oFile = fopen("lgput.out", "w");

    read();
    solve();

    fclose(iFile);
    fclose(oFile);

    return 0;
}