Cod sursa(job #2666331)

Utilizator TghicaGhica Tudor Tghica Data 1 noiembrie 2020 15:36:01
Problema Algoritmul lui Euclid extins Scor 100
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.7 kb
#include <stdio.h>

void euclid(int a, int b, int *d, int *x, int *y) {
  if (b == 0) {
    *d = a;
    *x = 1;
    *y = 0;
  } else {
    int x0, y0;
    euclid(b, a % b, d, &x0, &y0);
    *x = y0;
    *y = x0 - (a / b) * y0;
  }
}
int main() {
  FILE *fin, *fout;
  fin = fopen("euclid3.in", "r" );
  fout = fopen("euclid3.out", "w" );
  int n, a, b, c, d, i, x, y;
  fscanf( fin, "%d", &n );
  for( i = 1; i <= n; i++ ) {
    fscanf( fin, "%d", &a );
    fscanf( fin, "%d", &b );
    fscanf( fin, "%d", &c );
    euclid( a, b, &d, &x, &y );
    if ( c % d != 0 ) {
      x = 0;
      y = 0;
    }
    c = c / d;
    fprintf( fout, "%d %d\n", x * c, y * c );
  }

  return 0;
}