Cod sursa(job #3294686)

Utilizator Dragos_MatuDragos Gabriel Matu Dragos_Matu Data 27 aprilie 2025 13:42:29
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.65 kb
#include <iostream>
#include <fstream>

#define MOD 1999999973

using namespace std;

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

unsigned long long fast_pow(unsigned long long base, unsigned long long power)
{
    unsigned long long result = 1;
    base %= MOD;

    while (power > 0)
    {
        if (power % 2 == 1)
        {
            result = (result * base) % MOD;
        }
        base = (base * base) % MOD;
        power = power / 2;
    }

    return result;
}

int main()
{
    unsigned long long N, P;
    fin >> N >> P;
    fout << fast_pow(N, P);

    fin.close();
    fout.close();
    return 0;
}