Cod sursa(job #3323386)

Utilizator Coman_DianaComan Diana Coman_Diana Data 18 noiembrie 2025 11:01:26
Problema Algoritmul lui Euclid extins Scor 100
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.84 kb
#include <stdio.h>
#include <stdlib.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;
    int num_t, num_a, num_b, num_c, d, x, y, ind;

    fin = fopen( "euclid3.in", "r" );
    fscanf( fin, "%d", &num_t );
    fout = fopen( "euclid3.out", "w" );

    for ( ind = 0; ind < num_t; ind++ ) {
      fscanf( fin, "%d%d%d", &num_a, &num_b, &num_c );
      x = y = 0;
      euclid( num_a, num_b, &d, &x, &y );
      if ( num_c % d == 0 )
        fprintf( fout, "%d %d\n", num_c / d * x, num_c / d * y );
      else
        fprintf( fout, "0 0\n" );
    }

    fclose( fin );
    fclose( fout );
    return 0;
}