Cod sursa(job #1746767)

Utilizator Tiberiu02Tiberiu Musat Tiberiu02 Data 23 august 2016 21:22:19
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.52 kb
# include <iostream>
# include <fstream>

using namespace std;

# define MOD 1999999973

long long pow2( long long x ) {
    return x * x % MOD;
}

long long pow( long long base, long long power ) {
    if ( power == 0 )
        return 1;
    else
        return pow2( pow( base, power / 2 ) ) * ( power % 2 ? base : 1 ) % MOD;
}

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

    long long n, p;

    fin >> n >> p;
    fout << pow( n, p );

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

    return 0;
}