Cod sursa(job #447255)

Utilizator SpiderManSimoiu Robert SpiderMan Data 28 aprilie 2010 10:33:12
Problema Invers modular Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include <cstdio>

#define ll long long

int A, N;

void euclid(int A, int B, int &X, int &Y)
{
     if ( !B )
         X = 1, Y = 0;
     else
     {
         euclid(B, A % B, X, Y);
         int aux = X;
         X = Y;
         Y = aux - Y * (A / B);
     }
}

int main()
{
    int inv = 0, ins;

    freopen("inversmodular.in", "r", stdin);
    freopen("inversmodular.out", "w", stdout);

    scanf("%d %d", &A, &N);

    euclid(A, N, inv, ins);

    if (inv <= 0)
       inv = N + inv % N;

    printf("%d", inv);

    return 0;
}