Cod sursa(job #2360981)

Utilizator MoodyFaresFares Mohamad MoodyFares Data 2 martie 2019 12:10:15
Problema Invers modular Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.54 kb
#include <cstdio>

struct EuclidExtins {
  int x;
  int y;
};

EuclidExtins euclid_extins(int a, int b, int d) {
  if (b == 0)
    return {d / a, 0};
  else {
    EuclidExtins sol = euclid_extins(b, a % b, d);
    int c = a / b;
    return {sol.y, sol.x - c * sol.y};
  }
}

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

  int a, n;
  scanf("%d%d", &a, &n);
  // a * x + n * y = 1
  EuclidExtins sol = euclid_extins(a, n, 1);
  printf("%d\n", sol.x);
  return 0;
}