Cod sursa(job #2870553)

Utilizator elenacurecheriuElena Curecheriu elenacurecheriu Data 12 martie 2022 13:53:38
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.5 kb
#include <fstream>
#pragma GCC optimize ("Ofast")
using namespace std;

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

const int mod = 1999999973;
int p;
long long n, ans = 1;

int lgput(int n, int p)
{
    if(p==1)
        return n;
    if(p%2==0)
    {
        int k = lgput (n, p/2);
        return (1LL * k * k) % mod;
    }
    if(p%2==1)
        return (1LL * n * lgput(n, p-1)) % mod;
}
int main()
{
    fin>>n>>p;
    ans = lgput (n, p);
    fout<<ans;
    return 0;
}