Cod sursa(job #2173077)

Utilizator remus88Neatu Remus Mihai remus88 Data 15 martie 2018 20:22:08
Problema Invers modular Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
// Pentru N - prim
#include <fstream>

using namespace std;
ifstream f("inversmodular.in");
ofstream g("inversmodular.out");

int a,n;

long long lgput(long long n, long long k, long long MOD) {

    long long m=1;

    while(k>1) {

        if (k%2==0) {

            k=k/2;
            n=( (n%MOD) * (n%MOD))%MOD;
        }
        else {

            --k;
            m=( (m%MOD) * (n%MOD))%MOD;
        }
    }
    return ( (m%MOD) * (n%MOD))%MOD;
}

long long inversmodular(long long a,long long n) {

    return lgput(a,n-2,n);
}

int main() {

    f>>a>>n;

    g<<inversmodular(a,n)<<'\n';

    f.close(); g.close();
    return 0;
}