Pagini recente » Cod sursa (job #3278948) | Cod sursa (job #3278961) | Cod sursa (job #2815710) | Cod sursa (job #1116754) | Cod sursa (job #3278352)
#include <stdio.h>
int euclid_e(int a, int b, int *x, int *y) {
if (b == 0) {
*x = 1;
*y = 0;
return a;
}
int x0, y0;
int d = euclid_e(b, a % b, &x0, &y0);
*x = y0;
*y = x0 - (a / b) * y0;
return d;
}
int main() {
FILE *in = fopen("euclid3.in", "r");
FILE *out = fopen("euclid3.out", "w");
if (!in || !out) {
perror("Eroare la deschiderea fișierelor");
return 1;
}
int n, a, b, c;
fscanf(in, "%d", &n);
for (int i = 0; i < n; i++) {
fscanf(in, "%d %d %d", &a, &b, &c);
int x, y;
int d = euclid_e(a, b, &x, &y);
// Verificăm dacă există soluție
if (c % d != 0) {
fprintf(out, "0 0\n");
} else {
// Scalăm soluția pentru c
x *= c / d;
y *= c / d;
// Normalizăm soluția dacă e necesar (opțional)
if (a < 0) x = -x;
if (b < 0) y = -y;
fprintf(out, "%d %d\n", x, y);
}
}
fclose(in);
fclose(out);
return 0;
}