Cod sursa(job #1526731)

Utilizator stoianmihailStoian Mihail stoianmihail Data 17 noiembrie 2015 08:38:57
Problema Invers modular Scor 50
Compilator c Status done
Runda Arhiva educationala Marime 0.57 kb
#include <stdio.h>

#define ll long long

void euclid(int A, int B, ll int *X, ll int *Y) {
  if (!B) {
    *X = 1, *Y = 0;
  } else {
    int X0, Y0;
    euclid(B, A % B, &X0, &Y0);

    *X = Y0;
    *Y = X0 - Y0 * (A / B);
  }
}

int main(void) {
  int A, N;
  ll int X, Y;
  FILE *f = fopen("inversmodular.in", "r");

  fscanf(f, "%d %d", &A, &N);
  fclose(f);

  f = fopen("inversmodular.out", "w");

  euclid(A, N, &X, &Y);
  fprintf(f, "%lld\n", (ll)(X % N + N));
  fclose(f);

  /// Multumim Doamne!
  puts("Doamne ajuta!");
  return 0;
}