Cod sursa(job #542876)

Utilizator algoritmarOvidiu Andrei algoritmar Data 27 februarie 2011 01:53:36
Problema Algoritmul lui Euclid Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include <fstream>

using namespace std;

#define FIN "euclid2.in"
#define FOUT "euclid2.out"

int gcd(int a,int b)
{
	if(b == 0)
		return a;
	else return gcd(b, a%b);
}

int gcd_norec(int a, int b)
{
	if(b == 0)
		return 	a;
	if(a%b == 0)
		return b;
	
	for(int i = b-1; i >=2; i--){
		if(a%i == 0 && b%i == 0)
			return i;
		}
	
	return 1;
}

int main()
{
	int n,a,b;

	ifstream fin(FIN);
	ofstream fout(FOUT);
	fin >> n;
	
	for(int i = 0; i < n; ++i)
		{ 
			fin >> a >> b;
			//fout <<  gcd(a,b)  <<  endl;
			
			fout <<  ((a>b) ? gcd_norec(a,b): gcd_norec(b,a))  <<  endl;
			
		}
		
	return 0;
}