Cod sursa(job #2127881)

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

using namespace std;

const long long MOD = 1999999973;

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

    while(b > 1){
        if(b % 2 == 1){
            rez *= a;
            rez %= MOD;
            b--;
        }
        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;
}