Cod sursa(job #1963795)

Utilizator ContDeRacistAliniateEBlat ContDeRacist Data 12 aprilie 2017 19:43:47
Problema Ridicare la putere in timp logaritmic Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include <fstream>

using namespace std;

ifstream cin ( "lgput.in" ) ;
ofstream cout ( "lgput.out" ) ;

const int M = 1999999973 ;

int rusac ( int baza , int exp ) {
    int a = baza , sol = 1 ;
    while ( exp != 0 ) {
        if ( exp %2 != 0 ) {
            sol = ( long long ) sol * a % M ;
        }
        a = ( long long )a * a % M ;
        exp /=2 ;
    }
    return sol ;
}

int main()
{
    int nr , exponent ;
    cin >> nr >> exponent ;
    nr %= M ;
    exponent %= ( M - 1 ) ;
    cout << rusac ( nr , exponent ) ;
    return 0;
}