Pagini recente » Cod sursa (job #1930190) | Cod sursa (job #1119373) | Cod sursa (job #1834508) | Cod sursa (job #2245253) | Cod sursa (job #2416139)
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int cmmdc(int a, int b)
{
int r;
while (b != 0)
{
r = a % b;
a = b; b = r;
}
return a;
}
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()
{
int nr;
int a, b,c;
FILE* fp = fopen("euclid3.in", "r");
FILE* fout=fopen("euclid3.out", "w");
if (fscanf(fp, "%d", &nr) !=0)
{
for (int i = 0; i < nr; i++)
{
if (fscanf(fp, "%d %d %d", &a, &b, &c) != 0)
{
int d, x, y;
euclid(a, b, &d, &x, &y);
if (c % d)
fprintf(fout, "0 0\n");
else
{
fprintf(fout, "%d %d %d\n", d, x * (c / d), y * (c / d));
}
}
}
}
fclose(fp);
fclose(fout);
return 0;
}