const std = @import("std"); fn pgcd(l: u32, r: u32) u32 { var a = l; var b = r; if (a == 0 or b == 0) { return 0; } while (a != b) { if (a > b) { a = a - b; } else { b = b - a; } } return a; } const expect = @import("std").testing.expect; fn expectidentical(i: u32) !void { try expect(pgcd(i, i) == i); } test "identical" { try expectidentical(1); try expectidentical(7); try expectidentical(18); } test "primes" { try expect(pgcd(4, 13) == 1); } test "pgcdexists" { try expect(pgcd(15, 35) == 5); } test "pgcdlower" { try expect(pgcd(15, 5) == 5); }