Cod sursa(job #3323250)

Utilizator calinulCalin Cernat calinul Data 17 noiembrie 2025 21:27:29
Problema Invers modular Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.67 kb
#include <bits/stdc++.h>

using namespace std;

long long extgcd( long long a, long long b, long long &x, long long &y ) {
  if ( b == 0 ) {
    x = 1;
    y = 0;
    return a;
  }
  long long x1, y1;
  long long g = extgcd( b, a % b, x1, y1 );
  x = y1;
  y = x1 - y1 * (a % b);
  return g;
}

int invMod( int a, int n ) {
  long long x, y;
  extgcd( a, n, x, y );
  return (x % n + n) % n;
}

int main() {
  FILE *fin, *fout;
  int a, n;

  fin = fopen( "inversmodular.in", "r" );
  fscanf( fin, "%d%d", &a, &n );
  fclose( fin );

  fout = fopen( "inversmodular.out", "w" );
  fprintf( fout, "%d\n", invMod( a, n ) );
  fclose( fout );

  return 0;
}