Cod sursa(job #1923751)

Utilizator tudortarniceruTudor Tarniceru tudortarniceru Data 11 martie 2017 23:42:06
Problema Ridicare la putere in timp logaritmic Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.45 kb
#include <fstream>
#include <cstring>
#include <algorithm>
using namespace std;

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

const int MOD = 1999999973;
int a, m;

int main() {

    fin >> a >> m;
    int r = 1;
    for (int i = 0; (1 << i) <= m; ++i) {
        if ((1 << i) & m) {
            r *= a;
            r %= MOD;
        }
        a *= a;
        a %= MOD;
    }
    fout << r;

    fout.close();
    return 0;
}