Cod sursa(job #1292956)

Utilizator AnesthesicChereches Sergiu Alexandru Anesthesic Data 15 decembrie 2014 01:59:07
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <iostream>
#include <fstream>
#define mod 1999999973
using namespace std;

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

long long  number, exponent;

long long quick_exponential(long long  number, long long  exponent){
    if(exponent==0) return 1;
    if(exponent==1) return number;
    if(exponent%2==0) return quick_exponential((number*number)%mod, exponent/2)%mod;
    return number* quick_exponential((number*number)%mod, (exponent-1)/2)%mod;

}
void second_main(){
    fin >> number >> exponent;
    fout << quick_exponential(number, exponent);
}

int main(){
    second_main();
    return 0;
}