retroforth/example/LeastCommonMultiple.retro
crc 28260d7709 update the native image source; lcm example
FossilOrigin-Name: 154e68f1885daf32f0749ba8778cf4efe3d650bfeee6439b1ef298f8c64f33f0
2019-12-24 16:03:42 +00:00

19 lines
418 B
Text

# Least Common Multiple
The least common multiple of two integers a and b, is the
smallest positive integer that is divisible by both a and b.
This implements a word to find this in RETRO.
It uses a formula that reduces the problem to computing the
greatest common divisor (gcd), as in:
lcm(a,b) = |a*b| / gcd(a,b)
~~~
:gcd (ab-n)
[ tuck mod dup ] while drop ;
:lcm (ab-n)
dup-pair gcd [ * ] dip / ;
~~~