Cod sursa(job #1841288)

Utilizator stefanmereutaStefan Mereuta stefanmereuta Data 5 ianuarie 2017 14:49:26
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include <iostream>
#include <fstream>

using namespace std;

#define MOD 1999999973

int putere(int x, int put) {
    if (put == 0) {
        return 1;
    } else if (put % 2 == 1) {
        return (long long) x * putere(x, put - 1) % MOD;
    } else {
        int res = putere(x, put / 2);
        return ((long long) res * (long long) res) % MOD;
    }
}

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

    int x, put;

    fin >> x >> put;

    fout << putere(x, put);

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

    return 0;
}