Cod sursa(job #2062935)

Utilizator preda.andreiPreda Andrei preda.andrei Data 10 noiembrie 2017 22:25:56
Problema Invers modular Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.51 kb
#include <fstream>

using namespace std;

pair<int, int> Euclid(int a, int b)
{
  if (b == 0) {
    return {1, 0};
  }

  auto p = Euclid(b, a % b);
  return {p.second, p.first - (a / b) * p.second};
}

int ModInv(int num, int mod)
{
  auto p = Euclid(num, mod);
  while (p.first < 0) {
    p.first += mod;
  }
  return p.first;
}

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

  int a, mod;
  fin >> a >> mod;

  auto res = ModInv(a, mod);
  fout << res << "\n";

  return 0;
}