don't CTZ(0) in gcd

This commit is contained in:
dzaima 2023-05-24 15:13:25 +03:00
parent c3681a0557
commit 55e0409582

View File

@ -484,12 +484,13 @@ static u64 gcd_u64(u64 a, u64 b) {
u8 sh = az<bz? az : bz;
b >>= bz;
while (a > 0) {
while (1) {
a >>= az;
u64 d = b - a;
az = CTZ(d);
b = b<a? b : a;
if (d == 0) break;
a = b<a? -d : d;
az = CTZ(d);
}
return b << sh;
}