Pagini recente » Cod sursa (job #1251477) | Cod sursa (job #1738635) | Cod sursa (job #2166881) | Cod sursa (job #549361) | Cod sursa (job #2378256)
#include <bits/stdc++.h>
using namespace std;
unsigned int gcd(unsigned int u, unsigned int v)
{
unsigned t;
int shift;
if (u == 0) return v;
if (v == 0) return u;
shift = __builtin_ctz(u | v);
u >>= __builtin_ctz(u);
do {
v >>= __builtin_ctz(v);
if (u > v) {
t = v;
v = u;
u = t;
}
v = v - u;
} while (v != 0);
return u << shift;
}
int main(void)
{
freopen("euclid2.in", "r", stdin);
freopen("euclid2.out", "w", stdout);
unsigned T, A, B;
scanf("%d", &T);
while(cin >> A >> B)
cout << gcd(A,B) << '\n';
return 0;
}