Cod sursa(job #3237531)

Utilizator obsidianMidnight Majesty obsidian Data 9 iulie 2024 20:35:38
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.55 kb
#include <fstream>
using namespace std;

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

#define PRIME 1999999973
#define ll long long 

ll pow(ll var, int exp)
{
    ll prod = 1;
    while (exp > 0)
    {
        if (exp % 2 == 0)
        {
            var = (var * var) % PRIME;
            exp /= 2;
        }
        else
        {
            prod = (prod * var) % PRIME;
            exp -= 1;
        }
    }
    return prod;
}

int main()
{
    ll a, b;
    fin >> a >> b;
    fout << pow(a, b) << "\n";
    return 0;
}