Pagini recente » Cod sursa (job #1906978) | Cod sursa (job #3221115) | Cod sursa (job #673248) | Cod sursa (job #1111774) | Cod sursa (job #2378257)
#include <bits/stdc++.h>
using namespace std;
unsigned int gcd(unsigned int u, unsigned int v)
{
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) {
unsigned 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;
}