Cod sursa(job #1244531)

Utilizator laurageorgescuLaura Georgescu laurageorgescu Data 17 octombrie 2014 18:25:06
Problema Invers modular Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.52 kb
// solutie pt n prim
#include<fstream>

using namespace std;

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

long long pow_log( long long a, int n, int x ) {
    long long sol;
    sol = 1;
    while ( n > 0 ) {
        if ( n % 2 == 1 ) {
            sol *= a;
            sol %= x;
        }
        a *= a; a %= x;
        n /= 2;
    }
    return sol ;
}
int main() {
    int a, n;
    fin >> a >> n;
    fout << pow_log( a, n - 2, n ) << "\n";
    fin.close();
    fout.close();
    return 0;
}