The math
module in Python contains a number of mathematical operations. Amongst some of the most important functions in this module is the lcm[]
function which returns the least common multiple of the specified integer arguments.
The
lcm
function was newly introduced in the Python version 3.9.0.
Solution approach
The Least Common Multiple [LCM] of a group of numbers is the least possible number that is divisible by all the numbers in the group.
For example, the LCM of 2, 3, and 4 is 12, because 12 is the least number which is divisible by all three numbers.
Syntax
The syntax of the math.lcm[]
function is shown below.
math.lcm[x1, x2, x3,... xn]
Note: The
math.lcm[]
function is available in Python 3.9.0 and higher.
Parameters
The math.lcm[]
function accepts n integers, where n = any real number.
Return value
The math.lcm[]
function returns the least common multiple of the specified numbers.
- If all the provided numbers are 00 , it returns 00.
- If no arguments are provided, it returns 11.
- If a
float
orstring
parameter is provided, themath.lcm[]
method returns aTypeError
.
Code
The code snippet below shows how the math.lcm[]
works in Python.
import math print[math.lcm[2,3,4]]
Use math.lcm[] function in C++
Explanation
Line 1 imports the
math
module.In line 2, the
math.lcm[]
method computes the LCM of 2, 3, and 4, which are printed accordingly.
Python Program to Find LCM
In the following tutorial, we will learn how to find Least Common Multiple [LCM] using the Python programming language.
But before we get started, let us briefly discuss about LCM.
LCM: Least Common Multiple/ Lowest Common Multiple
LCM stands for Least Common Multiple. It is a concept of arithmetic and number system. The LCM of two integers a and b is denoted by LCM [a,b]. It is the smallest positive integer that is divisible by both "a" and "b".
For example: We have two integers 4 and 6. Let's find LCM
Multiples of 4 are:
Multiples of 6 are:
Common multiples of 4 and 6 are simply the numbers that are in both lists:
LCM is the lowest common multiplier so it is 12.
Since, we have understood the basic concept of the LCM, let us consider the following program to find the LCM of given integers.
Example:
Output:
Enter first number: 3 Enter second number: 4 The L.C.M. of 3 and 4 is 12
Explanation:
This program stores two number in num1 and num2 respectively. These numbers are passed to the calculate_lcm[] function. The function returns the LCM of two numbers.
Within the function, we have first determined the greater of the two numbers as the LCM can only be greater than or equal to the largest number. We then use an infinite while loop to go from that number and beyond.
In every iteration, we have checked if both the numbers perfectly divide the number. If so, we have stored the number as LCM and break from the loop. Otherwise, the number is incremented by 1 and the loop continues.
I am currently using a function that accepts two numbers and uses a loop to find the least common multiple of those numbers,
def lcm[x, y]:
"""This function takes two
integers and returns the L.C.M."""
# Choose the greater number
if x > y:
greater = x
else:
greater = y
while[True]:
if[[greater % x == 0] and [greater % y == 0]]:
lcm = greater
break
greater += 1
return lcm
Is there a built-in module in Python that does it instead of writing a custom function?
asked Aug 6, 2018 at 23:33
0
In Python 3.8 and earlier
There is no such thing built into the stdlib.
However, there is a Greatest Common Divisor function in the math
library. [For Python 3.4 or 2.7, it's buried in fractions
instead.] And writing an LCM on top of a GCD is pretty trivial:
def lcm[a, b]:
return abs[a*b] // math.gcd[a, b]
Or, if you're using NumPy, it's come with an
lcm
function for quite some time now.
Mark Amery
131k78 gold badges392 silver badges441 bronze badges
answered Aug 6, 2018 at 23:39
abarnertabarnert
340k43 gold badges571 silver badges649 bronze badges
2
In Python 3.9+
This is available as math.lcm[]
. It also takes any number of arguments, allowing you to find the lowest common multiple of more than 2 integers.
For example:
>>> from math import lcm
>>> lcm[2, 5, 7]
70
answered Mar 23, 2020 at 22:26
OrangutanOrangutan
9909 silver badges15 bronze badges
Try this instead:
def lcm[x, y]:
from fractions import gcd # or can import gcd from `math` in Python 3
return x * y // gcd[x, y]
answered Aug 6, 2018 at 23:37
Tim PetersTim Peters
64.5k12 gold badges122 silver badges129 bronze badges
5
To simplify your code a little:
def lcm[x, y]:
for currentPossibleLCM in range[max[x,y], [x*y]+1]
if[[currentPossibleLCM % x == 0] and [currentPossibleLCM % y == 0]]:
return currentPossibleLCM
Runtime: O[x*y]
answered Mar 9, 2020 at 22:22
Satbir KiraSatbir Kira
7426 silver badges20 bronze badges
This is not only for two numbers specifically but for finding LCM of an array of integers. [without using math.lcm[]]
import math
from functools import reduce
def lcm[arr]:
l=reduce[lambda x,y:[x*y]//math.gcd[x,y],arr]
return l
answered Dec 26, 2021 at 19:30