Cod sursa(job #1585663)

Utilizator Emy1337Micu Emerson Emy1337 Data 31 ianuarie 2016 12:27:18
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.53 kb
#include <iostream>
#include <fstream>

using namespace std;
ifstream fin("lgput.in");
ofstream fout("lgput.out");
const int mod = 1999999973;

int putere(int a, int b) {
    if (b == 0)
        return 1;

    long long rez;

    if (b % 2 == 0) {
        rez = putere(a, b/2);
        return (rez * rez) % mod;
    }
    else {
        rez = putere(a, (b-1)/2);
        return ((1LL * a * rez) % mod * rez)%mod;
    }
}


int main()
{
    int n, p;
    fin >> n >> p;
    fout << putere(n, p);
    return 0;
}