Cod sursa(job #1566611)

Utilizator ZenusTudor Costin Razvan Zenus Data 12 ianuarie 2016 13:19:05
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.49 kb
#include <cstdio>

using namespace std;

const long long mod = 1999999973;

long long N , P;

long long fastpow(long long n , long long p)
{
    long long result = 1;

    for (int i = 0 ; (1 << i) <= p ; ++i)
    {
        if ((1 << i) & p) result = (result * n) % mod;
        n = (n * n) % mod;
    }

    return result;
}

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

scanf("%lld%lld",&N,&P);

printf("%lld",fastpow(N,P));

return 0;
}