Cod sursa(job #278010)

Utilizator tomescu_alinTomescu Alin tomescu_alin Data 12 martie 2009 01:02:51
Problema Algoritmul lui Euclid Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.02 kb
#include <iostream>
#include <fstream>
using namespace std;

typedef unsigned int uint;
typedef unsigned long ulong;
typedef unsigned char byte;

namespace Recursive {
	ulong gcd(ulong first, ulong second) {
		if(second == 0)
			return first;
		else
			return Recursive::gcd(second, first % second);
	}
}

namespace Iterative {
	ulong gcd(ulong first, ulong second) {
		ulong temp;
		while(second != 0) {
			temp = second;
			second = first % second;
			first = temp;
		}
		
		return first;
	}
}

int main(int argc, char * argv[]) {
	
	const char * inFile = "euclid2.in";
	const char * outFile = "euclid2.out";

	ifstream fin(inFile);
	ofstream fout(outFile);
	if(!fin || !fout) {
		cout << "Error opening files!" << endl;
		return -1;
	}
	
	ulong nPairs;
	ulong first, second;
	
	fin >> nPairs;
	for(ulong i = 0; i < nPairs; i++) {
		fin >> first;
		fin >> second;
		fout << Iterative::gcd(first,second) << "\n";
	}
	
	fout.close();
	fin.close();
	
	//system("PAUSE");
	return 0;
	
}