Cod sursa(job #1897988)

Utilizator CammieCamelia Lazar Cammie Data 1 martie 2017 19:41:07
Problema Invers modular Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <stdio.h>

#define InFile "inversmodular.in"
#define OutFile "inversmodular.out"

using namespace std;

FILE *fin, *fout;

inline void inv_mod(int a, int b, int& x, int& y)
{
    if (b == 0)
    {
        x = 1;
        y = 0;
    }
    else
    {
        int x0, y0;
        inv_mod(b, a % b, x0, y0);
        x = y0;
        y = x0 + (a / b) * y0;
    }
}

inline void Read(void)
{
    int a, n, inv, invb;

    fscanf(fin, "%d %d", &a, &n);

    inv_mod(a, n, inv, invb);

    if (inv < 0)
        inv += n;

    fprintf(fout, "%d", inv);
}

int main()
{
    fin = fopen(InFile, "r");
    fout = fopen(OutFile, "w");

    Read();

    fclose(fin); fclose(fout); return 0;
}