Cod sursa(job #211991)

Utilizator alex.floreaAlexandru Florea alex.florea Data 3 octombrie 2008 23:17:24
Problema Algoritmul lui Euclid Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <stdio.h>

int cmmdc(int a, int b);
void change(int &a, int &b);

int main()
{
	FILE *inFile, *outFile;
	int a, b, c, T;
	
	inFile = fopen("euclid2.in", "r");
	outFile = fopen("euclid2.out", "w");

	fscanf(inFile, "%d", &T);
	
	for(int i = 1; i <= T; i++)
	{
		fscanf(inFile, "%d %d", &a, &b);

		c = cmmdc(a, b);

		fprintf(outFile, "%d\n", c);
	}

	fclose(inFile);
	fclose(outFile);
}

int cmmdc(int a, int b)
{
	if(a < b)
		change(a, b);
	while (a > b && b != 0 && b != 1)
	{
		int r = a % b;
		a = b;
		b = r;
	}
	if(b == 1)
		return 0;
	return a;
}

void change(int &a, int &b)
{
	int aux = a;
	a = b;
	b = aux;
}