let rec pgcd u v = if v = 0 then u else pgcd v (u mod v) ;; |
let rec pgcd u v = if v = 0 then u else let r = u mod v in if r = 0 then u else pgcd v r ;; |
let pgcd u v = let ur = ref u and vr = ref v in while !vr <> 0 do let x = !vr in vr := !ur mod !vr ; ur := x done ; !ur ;; |