Cod sursa(job #1627620)

Utilizator DiClauDan Claudiu DiClau Data 3 martie 2016 18:04:12
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include<stdio.h>
using namespace std;
const int R = 1999999973;
int main ()
{
    FILE *in, *out;
    in = fopen ("lgput.in", "r");
    out = fopen ("lgput.out", "w");
    long long x, p;
    fscanf (in, "%lld%lld", &x, &p);
    long long aux = x, aux2 = 1;
    while (p > 1)
    {
        if (p % 2 == 1)
        {
            aux2 *= aux;
            p--;
        }
        else
        {
            aux *= aux;
            p >>= 1;
        }
        aux %= R;
        aux2 %= R;
    }
    fprintf (out, "%lld", aux * aux2 % R);
    return 0;
}