C++ Program to Find LCM

To understand this example, you should have the knowledge of the following C++ programming topics:


LCM of two integers a and b is the smallest positive integer that is divisible by both a and b.


Example 1: Find LCM

#include <iostream>
using namespace std;

int main()
{
    int n1, n2, max;

    cout << "Enter two numbers: ";
    cin >> n1 >> n2;
    
    // maximum value between n1 and n2 is stored in max
    max = (n1 > n2) ? n1 : n2;

    do
    {
        if (max % n1 == 0 && max % n2 == 0)
        {
            cout << "LCM = " << max;
            break;
        }
        else
            ++max;
    } while (true);
    
    return 0;
}

Output

Enter two numbers: 12
18
LCM = 36

In above program, user is asked to integer two integers n1 and n2 and largest of those two numbers is stored in max.

It is checked whether max is divisible by n1 and n2, if it's divisible by both numbers, max (which contains LCM) is printed and loop is terminated.

If not, value of max is incremented by 1 and same process goes on until max is divisible by both n1 and n2.


Example 2: Find LCM using HCF

The LCM of two numbers is given by:

LCM = (n1 * n2) / HCF

Visit this page to learn: How to compute HCF in C++?

#include <iostream>
using namespace std;

int main()
{
    int n1, n2, hcf, temp, lcm;

    cout << "Enter two numbers: ";
    cin >> n1 >> n2;

    hcf = n1;
    temp = n2;
    
    while(hcf != temp)
    {
        if(hcf > temp)
            hcf -= temp;
        else
            temp -= hcf;
    }

    lcm = (n1 * n2) / hcf;

    cout << "LCM = " << lcm;
    return 0;
}