Cod sursa(job #2668488)

Utilizator thinkphpAdrian Statescu thinkphp Data 4 noiembrie 2020 22:33:06
Problema Algoritmul lui Euclid Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.94 kb
#include <iostream>
#include <fstream>
#define FIN "euclid2.in"
#define FOUT "euclid2.out"

using namespace std;

typedef unsigned long ulong;

namespace Math {
         
          ulong Euclid_it(ulong a, ulong b) {

              ulong r;

              while(b){
              	r = a % b;
              	a = b;
              	b = r;
              }

              return a;
          }

          ulong Euclid_rec(ulong a, ulong b, ulong *p) {

              if( b == 0 )  {

              	  return *p = a;

              } else return Euclid_rec(b, a % b, p);
          }

};

int main(int argc, char const *argv[])
{	
	ifstream fin(FIN);
	ofstream fout(FOUT);

	if(!fin || !fout) {

	   cout<<"Error Opening Files!";

	   return -1;
	}

	int nPairs;
	ulong first, 
	      second, 
	      result;

	fin>>nPairs;

	for(int i = 0; i < nPairs; ++i) {

		fin>>first>>second;

		Math::Euclid_rec(first, second, &result);

		fout<<result<<endl;
	}


	
	return 0;
}