Cod sursa(job #2870076)

Utilizator toma_ariciuAriciu Toma toma_ariciu Data 12 martie 2022 07:25:25
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.53 kb
#include <iostream>
#include <fstream>

using namespace std;

const string filename = "lgput";
ifstream fin(filename + ".in");
ofstream fout(filename + ".out");

const int mod = 1999999973;
int n, put;

int lgput(int x, int p)
{
    if(p == 1)
        return x;
    if(p % 2 == 0)
    {
        int k = lgput(x, p / 2);
        return (1LL * k * k) % mod;
    }
    if(p % 2 == 1)
        return (1LL * x * lgput(x, p - 1)) % mod;
}

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