Skip to main content

lcm

lcm Function

Syntax:

lcm &rest integers → least-common-multiple

Arguments and Values:

integer—an integer .

least-common-multiple—a non-negative integer .

Description:

lcm returns the least common multiple of the integers.

If no integer is supplied, the integer 1 is returned.

If only one integer is supplied, the absolute value of that integer is returned.

For two arguments that are not both zero,

(lcm a b) (/ (abs (* a b)) (gcd a b))

If one or both arguments are zero,

(lcm a 0) (lcm 0 a) 0

For three or more arguments,

(lcm a b c ... z) (lcm (lcm a b) c ... z)

Examples:

(lcm 10)10 
(lcm 25 30)150
(lcm -24 18 10)360
(lcm 14 35)70
(lcm 0 5)0
(lcm 1 2 3 4 5 6)60

Exceptional Situations:

Should signal type-error if any argument is not an integer .

See Also:

gcd

Expanded Reference: lcm

Basic least common multiple

lcm returns the least common multiple of its integer arguments. With no arguments it returns 1 (the identity element).

(lcm)
=> 1
(lcm 10)
=> 10
(lcm 4 6)
=> 12
(lcm 25 30)
=> 150

Multiple arguments

lcm accepts any number of integer arguments.

(lcm 1 2 3 4 5 6)
=> 60
(lcm -24 18 10)
=> 360
(lcm 14 35)
=> 70

With zero

If any argument is zero, the result is zero.

(lcm 0 5)
=> 0
(lcm 10 0)
=> 0
(lcm 0 0)
=> 0

Negative arguments

lcm always returns a non-negative integer, regardless of the signs of the arguments.

(lcm -4 6)
=> 12
(lcm -3 -5)
=> 15
(lcm -7)
=> 7

Relationship with gcd

For two non-zero integers, lcm and gcd are related by the identity: lcm(a,b) * gcd(a,b) = |a * b|.

(let ((a 12) (b 8))
(= (* (lcm a b) (gcd a b))
(abs (* a b))))
=> T