Cod sursa(job #2640708)

Utilizator richardionelRichard Ionel richardionel Data 7 august 2020 16:16:57
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.5 kb
#include <bits/stdc++.h>
using namespace std;

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

#define ll long long
const ll MOD = 1999999973;
ll n,p;

ll ridicare(ll numar, ll putere)
{
    if(putere == 1)
        return numar;
    if(putere == 0)
        return 1;

    if(putere % 2 == 0)
       return ridicare((numar * numar) % MOD, putere / 2) % MOD;
    else
        return numar * ridicare((numar * numar) % MOD, putere / 2) % MOD;
}

int main()
{
    fin >> n >> p;
    fout << ridicare(n,p);
}