Cod sursa(job #2348954)

Utilizator IOI_MDA_003Sebastian Chicu IOI_MDA_003 Data 20 februarie 2019 09:14:17
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.52 kb
#include <bits/stdc++.h>
#define var long long

using namespace std;

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

const var MOD = 1999999973;

var n, p;

var lgput(var n, var p){
    if(p == 0)
        return 1;
    if(p == 1)
        return n;
    if(p%2 == 0){
        var temp = lgput(n, p/2);
        temp = temp % MOD;
        return (temp * temp)%MOD;
    }
    else
        return (n * lgput(n, p-1)) % MOD;
}

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