Import "" ;msvcrt.lib AbsI(Quad.q) As "_abs64" AbsL(Long.l) As "labs" EndImport Procedure.i GCD(u.i, v.i) Protected.i t While v <> 0 t = v v = u % v u = t Wend ProcedureReturn AbsI(u) ; Avoid float conversion with Abs(u). EndProcedure Debug GCD(18, 12) ; 6 Debug GCD(1071, 1029) ; 21 Debug GCD(3528, -3780) ; 252