RosettaCodeData/Task/Least-common-multiple/XBasic/least-common-multiple.basic

27 lines
424 B
Plaintext

' Least common multiple
PROGRAM "leastcommonmultiple"
VERSION "0.0001"
DECLARE FUNCTION Entry()
INTERNAL FUNCTION Gcd(m&, n&)
INTERNAL FUNCTION Lcm(m&, n&)
FUNCTION Entry()
PRINT "LCM(35, 21) ="; Lcm(35, 21)
END FUNCTION
FUNCTION Gcd(m&, n&)
DO WHILE m& <> 0
tmp& = m&
m& = n& MOD m&
n& = tmp&
LOOP
RETURN n&
END FUNCTION
FUNCTION Lcm(m&, n&)
RETURN m& / Gcd(m&, n&) * n&
END FUNCTION
END PROGRAM