Cod sursa(job #1487045)

Utilizator bpalaniciPalanici Bogdan bpalanici Data 15 septembrie 2015 23:33:16
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include <bits/stdc++.h>

using namespace std;

const int MOD = 1999999973;

long long n, p;

long long plog(long long a, long long b)
{
    long long rezultat = 1;
    while (b)
    {
        if (b & 1)
        {
            b--;
            rezultat *= a;
        }
        a *= a;
        a %= MOD;
        rezultat %= MOD;
        b >>= 1;
    }
    return rezultat;
}

int main()
{
    freopen("lgput.in", "r", stdin);
    freopen("lgput.out", "w", stdout);
    scanf("%lld %lld", &n, &p);
    n %= MOD;
    printf("%lld", plog(n, p));
    return 0;
}