29 lines
461 B
Text
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
|