Cod sursa(job #2215649)

Utilizator vladm98Munteanu Vlad vladm98 Data 22 iunie 2018 22:28:20
Problema Invers modular Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <bits/stdc++.h>

using namespace std;

void extindedEuclid (long long x, long long y, long long &a, long long &b, long long &d) {
    if (y == 0) {
        d = x;
        a = 1;
        b = 0;
        return ;
    }
    extindedEuclid(y, x % y, a, b, d);
    long long newA = b;
    long long newB = a - b * (x / y);
    a = newA;
    b = newB;
}

int main()
{
    freopen ("inversmodular.in", "r", stdin);
    freopen ("inversmodular.out", "w", stdout);
    long long A, n;
    long long a, b, d;
    cin >> A >> n;
    extindedEuclid(A, n, a, b, d);
    a %= n;
    if (a < 0) {
        a += n;
    }
    cout << a;
    return 0;
}