Cod sursa(job #2728750)

Utilizator Vlad.Vlad Cristian Vlad. Data 23 martie 2021 17:31:25
Problema Invers modular Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.65 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("inversmodular.in");
ofstream fout("inversmodular.out");
int A, N;
pair<int, int> euclidExtins(int a, int b) {
    if (b == 0) {
        return make_pair(1, 0);
    }
    else {
        pair<int, int> p0 = euclidExtins(b, a % b);
        pair<int, int> p;
        p.first = p0.second;
        p.second = p0.first - (a / b) * p0.second;
        return p;
    }
}
int main()
{
    fin >> A >> N;
    pair<int, int> ans = euclidExtins(A, N);
    if (ans.first <= 0) {
        ans.first += N + (ans.first % N);
    }
    fout << ans.first << "\n";
    return 0;
}