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.
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
132k78 gold badges392 silver badges442 bronze badges
answered Aug 6, 2018 at 23:39
abarnertabarnert
341k44 gold badges572 silver badges650 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.6k12 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