Cod sursa(job #1593192)

Utilizator razvandRazvan Dumitru razvand Data 8 februarie 2016 13:24:08
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("lgput.in");
ofstream out("lgput.out");
const long long c = 1999999973;
long long pow(long long a, long long b, long long i) {
    if(b == 1)
        return a%c;
    if(b == 2)
        return (a%c)*i;
    if(b % 2 == 0) {
        long long p = pow(a, b/2, i);
        p %= c;
        return p * p;
    } else {
        return (pow(a, b-1, i)%c) * i;
    }
}
int main() {
    long long a,b;
    in >> a >> b;
    out << pow(a, b, a%c);
    return 0;
}