Cod sursa(job #2406384)

Utilizator dragostanTantaru Dragos Constantin dragostan Data 15 aprilie 2019 18:19:53
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.44 kb
#include <fstream>

using namespace std;
ifstream cin("lgput.in");
ofstream cout("lgput.out");
const long long MOD = 1999999973;

long long lgput(long long a, long long n);
long long n, p;
int main()
{
    cin >> n >> p;
    cout << lgput(n, p);
    return 0;
}

long long lgput(long long a, long long n)
{
    if(n == 0)
        return 1;
    if(n % 2 == 0)
        return lgput(a * a % MOD, n / 2);
    return a * lgput(a * a % MOD, n / 2) % MOD;
}