Cod sursa(job #881772)

Utilizator rhemaxosRotariu Marian rhemaxos Data 18 februarie 2013 16:28:06
Problema Algoritmul lui Euclid Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.64 kb
#include <stdio.h>

long int euclid(long int a, long int b) {
	long int r;
	long int max, min;
	long int prev;

	do {
		if (a > b) {
			max = a;
			min = b;
		} else {
			max = b;
			min = a;
		}

		prev = min;
		r = max % min;

		if (r)
			prev = r;

		a = min;
		b = r;
	} while(r);

	return prev;
}

int main() {
	long int a, b;
	long int T;
	long int i;
	FILE *fin, *fout;

	fin = fopen("euclid2.in", "r");
	fout = fopen("euclid2.out", "w");

	if (fin == NULL || fout == NULL)
		return -1;

	fscanf(fin, "%ld", &T);

	for (i = 0; i < T; i++) {
		a = b = 1;
		fscanf(fin, "%ld %ld", &a, &b);
		fprintf(fout, "%ld\n", euclid(a, b));
	}

	return 0;
}