# Python: Least Common Multiple (LCM) of more than two numbers

## Python Basic - 1: Exercise-135 with Solution

Write a Python program that calculates the Least Common Multiple (LCM) of more than two numbers. The numbers should be taken from a given list of positive integers.

From Wikipedia,

In arithmetic and number theory, the least common multiple, lowest common multiple, or smallest common multiple of two integers a and b, usually denoted by lcm(a, b), is the smallest positive integer that is divisible by both a and b. Since division of integers by zero is undefined, this definition has meaning only if a and b are both different from zero. However, some authors define lcm(a,0) as 0 for all a, which is the result of taking the lcm to be the least upper bound in the lattice of divisibility.

**Sample Solution-1:**

**Python Code:**

```
from functools import reduce
def test(nums):
return reduce(lambda x,y:lcm(x,y),nums)
def gcd(a, b):
while b:
a, b = b, a%b
return a
def lcm(a, b):
return a*b // gcd(a, b)
nums = [ 4, 6, 8 ]
print("Original list elements:")
print(nums)
print("LCM of the numbers of the said array of positive integers: ", test(nums))
nums = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]
print("\nOriginal list elements:")
print(nums)
print("LCM of the numbers of the said array of positive integers: ", test(nums))
nums = [ 48, 72, 108 ]
print("\nOriginal list elements:")
print(nums)
print("LCM of the numbers of the said array of positive integers: ", test(nums))
```

Sample Output:

Original list elements: [4, 6, 8] LCM of the numbers of the said array of positive integers: 24 Original list elements: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] LCM of the numbers of the said array of positive integers: 2520 Original list elements: [48, 72, 108] LCM of the numbers of the said array of positive integers: 432

**Flowchart:**

**Sample Solution-2:**

Use functools.reduce(), math.gcd() and lcm(x,y) = x * y / gcd(x,y) over the given list.

**Python Code:**

```
from functools import reduce
from math import gcd
def lcm(numbers):
return reduce((lambda x, y: int(x * y / gcd(x, y))), numbers)
print(lcm([ 4, 6, 8 ]))
print(lcm([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]))
print(lcm([48, 72, 108]))
```

Sample Output:

24 2520 432

**Flowchart:**

## Visualize Python code execution:

The following tool visualize what the computer is doing step-by-step as it executes the said program:

**Python Code Editor:**

**Have another way to solve this solution? Contribute your code (and comments) through Disqus.**

**Previous:** Write a Python program to alternate the case of each letter in a given string and the first letter of the said string must be uppercase.

**Next:** Write a Python program to reverse all the words which have odd length.

**What is the difficulty level of this exercise?**

Test your Programming skills with w3resource's quiz.

**Weekly Trends**- Python Interview Questions and Answers: Comprehensive Guide
- Scala Exercises, Practice, Solution
- Kotlin Exercises practice with solution
- MongoDB Exercises, Practice, Solution
- SQL Exercises, Practice, Solution - JOINS
- Java Basic Programming Exercises
- SQL Subqueries
- Adventureworks Database Exercises
- C# Sharp Basic Exercises
- SQL COUNT() with distinct
- JavaScript String Exercises
- JavaScript HTML Form Validation
- Java Collection Exercises
- SQL COUNT() function
- SQL Inner Join