Cod sursa(job #2127877)

Utilizator SolcanMihaiSolcan Mihai Andrei SolcanMihai Data 11 februarie 2018 10:23:03
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include <cstdio>

using namespace std;

const int MOD = 1999999973;

long long powx(long long a, long long b){
    int rez = 1;

    while(b > 1){
        if(b % 2 == 1){
            rez *= a;
            rez %= MOD;
        }
        a = a * a;
        a %= MOD;
        b /= 2;
    }

    return (a * rez) % MOD;
}

int main()
{
    freopen("lgput.in", "r", stdin);
    freopen("lgput.out", "w", stdout);

    long long a, b;
    scanf("%lld %lld", &a, &b);

    printf("%lld", powx(a, b) % MOD);

    return 0;
}