Cod sursa(job #2406394)

Utilizator AngelescuHoriaAngelescu Horia AngelescuHoria Data 15 aprilie 2019 18:27:57
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.46 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream fin("lgput.in");
ofstream fout("lgput.out");

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

int main()
{
int n, p;
fin >> n >> p;
fout << lgput(n, p);
fin.close();
fout.close();
    return 0;
}