Cod sursa(job #745333)

Utilizator mihai995mihai995 mihai995 Data 11 mai 2012 02:31:56
Problema Algoritmul lui Euclid Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include <fstream>
using namespace std;

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

inline int min(int a, int b)
{
    return a < b ? a : b;
}

inline int bit(int a)
{
    return a & (-a);
}

int euclid(int a, int b)
{
    int c, step = min(bit(a), bit(b));

    while (b)
    {
        a /= bit(a);
        b /= bit(b);

        c = a % b;
        a = b;
        b = c;
    }

    return step * a;
}

int main()
{
    int t, x, y;

    in >> t;

    while (t--)
    {
        in >> x >> y;
        out << euclid(x, y) << "\n";
    }

    return 0;
}