Cod sursa(job #1457391)

Utilizator CollermanAndrei Amariei Collerman Data 3 iulie 2015 12:18:27
Problema Invers modular Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.53 kb
#include <fstream>
using namespace std;
ofstream fout("inversmodular.out");
ifstream fin("inversmodular.in");

long long A, N, X, Y;

void euclid_extins(long long &x, long long &y, long long a, long long b)
{
    if(!b) {
        x = 1;
        y = 0;
    }
    else {
        euclid_extins(x, y, b, a % b);
        long long z = x;
        x = y;
        y = z - (a / b) * y;
    }
}

int main()
{
    fin >> A >> N;

    euclid_extins(X, Y, A, N);
    while(X <= 0) X += N;

    fout << X << '\n';
    return 0;
}