Cod sursa(job #789383)

Utilizator noctavianNastasie Ion Octavian noctavian Data 17 septembrie 2012 22:10:39
Problema Algoritmul lui Euclid Scor 30
Compilator c Status done
Runda Arhiva educationala Marime 0.65 kb
#include <stdlib.h>
#include <stdio.h>

int cmmdc(int a, int b) {
	int aux;
	while(b != 0) {
		aux = b;
		b = a % b;
		a = aux;
	}

	return a;
}

int main() {
	FILE *fin;
	FILE *fout;
	int max=512/2/sizeof(int), n, nt, a, b, i, *vect;

	fin = fopen("euclid2.in", "rt");
	fout = fopen("euclid2.out", "wt");

	fscanf(fin, "%i", &nt);
	n = nt <= max ? nt : max;
	vect = (int*)malloc(n*sizeof(int));

	while(nt > 0)
	{
		for(i = 0; i < n; i++) {
			fscanf(fin, "%i %i", &a, &b);
			vect[i] = cmmdc(a, b);
		}
		fclose(fin);
	
		for(i = 0; i < n; i++) {
			fprintf(fout, "%i\n", vect[i]);
		}
		nt-=n;
		n = nt <= max ? nt : max;
	}

	fclose(fout);
	free(vect);
	return 0;
}