std::lcm in C++17
Last Updated :
24 Jul, 2017
Competitive programming often involves computation of Least Common Multiple (LCM) of two numbers. One way of doing that is using boost::math::lcm(), which we discussed in the post – Inbuilt function for calculating LCM in C++ .
But, recently, C++ in its latest version C++17 has also included another in-built function for computation of LCM, std::lcm(). This function is defined inside the header file .
Syntax:
std::lcm (m, n)
Arguments: m, n
Returns: 0, if either of m or n are 0
else, returns lcm of mod(m) and mod(n)
Remember, since this feature has been defined in latest version of C++, so using this function in compilers not supporting C++17, will throw an error.
#include <iostream>
#include <numeric>
using namespace std;
int main()
{
cout << "LCM(10, 20) = " << std::lcm(10, 20)
<< endl;
return 0;
}
|
Output:
20
Important Points:
-
This function works on positive numbers, and if any argument is negative, it is firstly converted to its modulus, and then calculates the LCM.
-
Also, it works only on integer data type , and if any other data type like char, double, is provided in its argument, then it will throw an error.
Reference:
- C++ Weekly – Ep 67 – C++17’s std::gcd and std::lcm
Share your thoughts in the comments
Please Login to comment...