Cod sursa(job #1163560)

Utilizator Ionut228Ionut Calofir Ionut228 Data 1 aprilie 2014 14:27:56
Problema Invers modular Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include <fstream>

using namespace std;

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

int A, MOD;

void gcd(int a, int b, int& X, int& Y)
{
    if (b == 0)
    {
        X = 1;
        Y = 0;
        return;
    }

    int X0, Y0, D;
    gcd(b, a % b, X0, Y0);

    X = Y0;
    Y = X0 - (a / b) * Y0;
}

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

    int X, Y;
    gcd(A, MOD, X, Y);

    int inv = X % MOD;
    while (inv < 0)
        inv += MOD;

    fout << inv << '\n';

    fin.close();
    fout.close();
    return 0;
}