Cod sursa(job #1223658)

Utilizator DanielRusuDaniel Rusu DanielRusu Data 28 august 2014 15:37:14
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.48 kb
#include <fstream>

using namespace std;

#define MOD 1999999973

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

int n, m;

int rise(int a, int b);

int main() {
    fin >> n >> m;

    fout << rise(n, m);

    fin.close();
    fout.close();

    return 0;
}

int rise(int a, int b) {
    int x = 1;

    if(b == 1) {
        return a;
    }

    x = rise(a, b / 2) % MOD;

    if(b % 2 == 0) return x * x % MOD;
    else return x * x * a % MOD;
}