Cod sursa(job #1657582)

Utilizator moise_alexandruMoise Alexandru moise_alexandru Data 20 martie 2016 17:00:11
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.49 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("lgput.in");
ofstream out("lgput.out");
const int mod = 1999999973;
int lgput(int a, int b)
{
    if(b == 1)
        return a % mod;
    if(b == 0)
        return 1;
    int p = lgput(a, b / 2);
    int r = (1LL * p * p) % mod;
    if(b % 2 == 0)
        return r;
    else
        return (1LL * r * a) % mod;
}
int main()
{
    int a, b;
    in >> a >> b;
    out << lgput(a, b) << "\n";
    return 0;
}