Cod sursa(job #1903754)

Utilizator LittleWhoFeraru Mihail LittleWho Data 5 martie 2017 12:45:52
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include <iostream>
#include <fstream>
#include <algorithm>
#include <utility>
#include <vector>
#include <queue>
#include <stack>

#define MODULO 1999999973

typedef long long int lli;

using namespace std;

lli my_pow(lli b, lli p)
{
    if (p == 0) return 1;
    if (p == 1) return b;
    
    if (p % 2 == 0) return my_pow(b * b, p / 2) % MODULO;
    return (b * my_pow(b * b, (p - 1) / 2)) % MODULO;
}

int main()
{
    lli b, p;
    
    ifstream in("lgput.in");
    ofstream out("lgput.out");
    
    in >> b >> p;
    out << my_pow(b, p) << "\n";  
    return 0;
}