Pagini recente » Cod sursa (job #3228593) | Cod sursa (job #230474) | Cod sursa (job #2261150) | Cod sursa (job #3234679) | Cod sursa (job #3278353)
#include <stdio.h>
// Funcție pentru algoritmul Euclid extins
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);
if (c % d != 0) {
// Nu există soluții dacă c nu este divizibil cu d
fprintf(out, "0 0\n");
} else {
// Scalează soluția particulară cu factorul c / d
int factor = c / d;
x *= factor;
y *= factor;
fprintf(out, "%d %d\n", x, y);
}
}
fclose(in);
fclose(out);
return 0;
}