Cod sursa(job #3000434)

Utilizator Ciprian123Constantin Alexandru Ciprian123 Data 12 martie 2023 14:20:52
Problema Algoritmul lui Euclid Scor 60
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.63 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream fin("euclid2.in");
ofstream fout("euclid2.out");

int gcd(int a, int b)
{
    if(b > a)
    {
        swap(a, b);
    }
    int gcc = 1;
    while(a % 2 == 0 && b % 2 == 0)
    {
        gcc *= 2;
        a /= 2;
        b /= 2;
    }
    int r = a % b;
    while(r)
    {
        a = b;
        b = r;
        r = a % b;
    }

    return b * gcc;
}

int main()
{
    int T;
    fin >>  T;
    for(int i = 0; i < T; i++)
    {
        int a, b;
        fin >> a >> b;
        fout << gcd(a, b) << endl;
    }

    return 0;
}