Cod sursa(job #2540772)

Utilizator tudorcioc5Cioc Tudor tudorcioc5 Data 7 februarie 2020 18:17:25
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.64 kb
#include <iostream>
#include <fstream>
using namespace std;



int log_exp (int base, int power){
    int to_return;

    if (power == 1) return base;

    switch ((int)power % 2){
        case 0:
            to_return = log_exp(base * base, power/2);
            break;

        case 1:
            to_return = base * (log_exp(base * base, power/2));
            break;
    }

    return to_return;
}

ifstream fin;
ofstream fout;


int main (void){
    int n,p;

    fin.open("lgput.in");
    fin>>n>>p;
    fin.close();

    int result = log_exp(n , p);

    fout.open("lgput.out");
    fout<<(result % 1999999973)<<"\n";
    fout.close();

    return 0;
}