Cod sursa(job #447260)

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

#define verf(x, N) \
  if (x <= 0) \
    x = N + x % N

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);

    verf(inv, N);

    printf("%d", inv);

    return 0;
}