RosettaCodeData/Task/Least-common-multiple/PureBasic/least-common-multiple.basic
2026-04-30 12:34:36 -04:00

29 lines
461 B
Text

Procedure GCDiv(a.q, b.q); Euclidean algorithm
a = Abs(a)
b = Abs(b)
If a = 0
ProcedureReturn b
ElseIf b = 0
ProcedureReturn a
Else
Protected r.q
While b
r = b
b = a % b
a = r
Wend
ProcedureReturn a
EndIf
EndProcedure
Procedure LCM(m.d, n.d)
m = Abs(m)
n = Abs(n)
If m = 0
ProcedureReturn n
ElseIf n = 0
ProcedureReturn m
Else
ProcedureReturn m / GCDiv(m, n) * n
EndIf
EndProcedure