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; } pub fn main() !void { var gpa = std.heap.GeneralPurposeAllocator(.{}){}; defer _ = gpa.deinit(); const allocator = gpa.allocator(); const args = try std.process.argsAlloc(allocator); defer std.process.argsFree(allocator, args); if (args.len != 3) { std.debug.print("Usage: find-pgcd L R\n", .{}); return error.WrongArgs; } const l = try std.fmt.parseInt(u32, args[1], 10); const r = try std.fmt.parseInt(u32, args[2], 10); std.debug.print("PGCD({d},{d}) = {d}\n", .{ l, r, pgcd(l, r) }); }