(* au + bv = pgcd(a, b) a -> b -> (u, v) *) let rec bezout a b = let r=a mod b and d=a / b in if r = 0 then (0, 1) else let (u, v) = bezout b r in (v, u - v * d);;