Cod sursa(job #2910345)

Utilizator radu.seitanSeitan Radu-Catalin radu.seitan Data 19 iunie 2022 17:17:23
Problema Algoritmul lui Euclid extins Scor 0
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.69 kb
#include <stdio.h>
#include <stdlib.h>

int cmmdc(int a, int b, int * x, int * y)
{
	if (b == 0)
	{
		*x = 1;
		*y = 0;
		return a;
	}

	int x0 = 0, y0 = 0, d = 0;
	d = cmmdc(b, a % b, &x0, &y0);

	*x = y0;
	*y = x0 - (a / b) * y0;
	return d;
}

int main()
{
	FILE* f = fopen("euclid3.in", "r"), * g = fopen("euclid3.out", "w");
	int a = 0, b = 0, c = 0, d = 0, x = 0, y = 0, T = 0;
	fscanf(f, "%d", &T);

	while (!feof(f))
	{
		fscanf(f, "%d", &a);
		fscanf(f, "%d", &b);
		fscanf(f, "%d", &c);
		d = cmmdc(a, b, &x, &y);

		if (c % d)
			fprintf(g, "0 0\n");
		else
			fprintf(g, "%d %d\n", x * (c / d), y * (c / d));
	}

	fclose(f);
	fclose(g);
	return 0;
}