×

LCM Program in C++

What is LCM?

LCM is an acronym for "least common multiple". It is used to discover the lowest positive integer divisible by all integers (whose LCM is calculated). For instance, the LCM of 3 and 4 is 12, as shown by:

LCM(3,4) = 12

As you can see, the numbers 3 and 4 are divisors of 12.

LCM stands for "Least Common Multiple" and Least Common Divisor (LCD), both have the same meaning, which is to discover a number that is divisible by the provided integers (whose LCM is to be calculated).

Finding LCM of two numbers in C++:

In C++ language, you must ask the user to provide the two integers to determine the LCF. Then, as illustrated in the software below, locate and print its LCM on output.

LCM stands for Lowest Common Multiple, often known as Least Common Divisor. Consider the case of two numbers, say 4 and 5. Then 20 is the Least Common Divisor. That is, the numbers 4 and 5 divide 20 evenly without any residue (or leaving the remainder 0).

Algorithm for the LCM of two numbers in C++:

Step 1: Take num1 and num2 as inputs from the user.

Step 2: In the max variable, keep the lowest common multiple of num1 and num2.

Step 3: Check if the max variable is divisible by num1 and num2, then output the max as the LCM of two values.

Step 4: If not, the max value is incremented by 1 with each iteration, and the max variable's divisibility is checked in step 3.

Step 5: Close the application.

Finding LCM of two numbers:

In the following program, we will use if and else statements and while loop to find the LCM of two numbers.

Example:

#include<iostream>
using namespace std;
int main()
{
    Int num1, num2, n;
    cout<<"Enter the Two Numbers: ";
    cin>>num1>>num2;
    if(num1>num2)
        n = num1;
    else
        n = num2;
    while(1)
    {
        if((n%num1 == 0) && (n%num2 == 0))
            break;
        else
            n++;
    }
    cout<<"\nCM ("<<num1<<", "<<num2<<") = "<<n;
    cout<<endl;
    return 0;
}

Output:

Enter the Two Numbers:4

5

LCM(4,5)=20

Explanation:

The following is the main rationale behind the program:

N is initialized with the bigger number. When 1 is used as a condition in a while loop, it always returns true. As a result, this loop will continue to execute until the break keyword is used. When both the if (within while loop) condition and the break keyword evaluate to true, the break keyword is performed. When entering the body of the while loop, an if condition is performed, which checks if the value in n is divisible by both numbers. If the number is divisible, use the break keyword to terminate the loop. Otherwise, increase its value and check again with next.

Finding LCM of two numbers using the HCF:

In C++, we may use HCF(highest Common Factor) or GCD(Greatest Common Divisor) to calculate the LCM of two numbers. To do so, we must apply the formula below: HCF(x,y) and LCM are equivalent when two numbers x and y are added together (x,y).

HCF(x,y) * LCM = x*y (x,y)
or
LCM(x,y) = (x*y) / HCF(x,y)

To find the LCM of two integers in C++, use the program below. We determine the HCF first, then compute the LCM using the technique above.

Example:

#include<iostream>
using namespace std;
int main()
{
  // declaring variables
  int numOne, numTwo, hcf, tmp, lcm;


  // taking the input
  cout << "Enter the two Integers: ";
  cin >> numOne >> numTwo;


  // assigning the values
  hcf = numOne;
  tmp = numTwo;


  // calculating the value of HCF
  while (hcf != tmp)
  {
    ( hcf > tmp ) ? (hcf -= tmp) : (tmp -= hcf);
  }


  // calculate the value of LCM
  lcm = (numOne * numTwo) / hcf;


  // displaying the result
  cout << "LCM = " << lcm << endl;


  return 0;
}

Output:

Enter the two Integers: 3

4

LCM = 12

Explanation:

In the above example, in the main() function we first declared the int variables numOne, numTwo, tmp , hcf and lcm. The input values of the two numbers numOne and numTwo were taken and the values were assigned to the variables hcf and tmp. Then using a formula, the value of hcf was found and then value of lcm was found too. Hence, the required output was printed.

Finding LCM of the two numbers using Recursion:

The recursion approach may also be used to get the lcm of two integers. Recursion is a means of defining a method or function that includes a call to itself.

The recursive function/method helps us to break down a big problem into readily manageable single basic situations. Divide and conquer is a very well know computer programming strategy.

Example:

#include<iostream>
using namespace std;


// defining a global variable
static int cmmn;


//declaring the function
long lcm(int, int);


// calling main function
int main()
{
  // declaring the variables
  int numOne, numTwo;


  // taking the input
  cout << "Enter the two Integers: ";
  cin >> numOne >> numTwo;


  // displaying the result
  cout << "LCM = " << lcm(numOne, numTwo) << endl;


  return 0;
}


// function for finding the value of LCM
long lcm(int nOne, int nTwo)
{
  // increased cmmn
  cmmn += nTwo;
  if(cmmn % nOne == 0)
     return cmmn; // base-case
  else
     return lcm(nOne, nTwo); //general-case
}

Output:

Enter the two Integers: 5

6

LCM = 30

Explanation:

In the above example, we used the recursion aSpproach to find the LCM of two numbers. A global variable cmmn of int datatype was defined. Then we declared a function lcm() with two int values and called the main() function. The Two variables numOne and numTwo were declared and were used to receive values from the user. When the function lcm() was called, an if-else loop was run with respective conditions for calculating the LCM. Hence, the required output was printed.


Related Topics

C++ Prime number program

In this lesson, you'll learn how to verify whether a given number is a prime number or not in C++, and you'll obtain code to do it. What is the definition...

3 minutes read.

wcscpy(), wcslen(), wcscmp() Functions in C++

There are many built-in functions in C++ programming language which differentiate it from C programming language in most hardware-coded languages. We will now closely look into the applications of three...

4 minutes read.

Returning a Function Pointer from a Function in C/C++

Pointers to functions can be used in the C programming language just like standard data pointers such as "int *," "char *," etc. The following is a basic example of a...

3 minutes read.

How is multiset implemented in C++

Similar to sets, multisets are an associative container type where several items may share the same values. Associative containers implement instantly searchable sorted data structures with O(log n) complexity. In a multiset,...

5 minutes read.

C++ Pipe Tutorial

A pipe is a mechanism for inter-process communication (IPC) in a Unix-like operating system. It allows two or more processes to communicate with each other by sending and receiving data...

3 minutes read.

Factorial of a Number in C++ using while Loop

What is a factorial? The factorial of a number is the product of all the positive numbers less than or equal to n, indicated by n! According to the standard for an...

6 minutes read.

How to Reverse a String in C++ using Do-While Loop

Strings In C++, a string is an object that represents a group (or sequence) of various characters. Strings are part of the standard string class in C++ (std::string). The characters of...

4 minutes read.

Hashing in C++

Before understanding hashing, we need to know what the use of hashing is. Let us consider an example of a library which consists of many books.Having many books, searching for...

6 minutes read.

C++ Nested if

C++'s nested if statements enable more complex decision-making when a section of code needs to execute only after a set of conditions is met. The nested if control statement refers...

4 minutes read.

Palindrome using For loop in C++

A palindrome is a word, number, phrase, or other sequence of letters that reads the same backward as forward, such as 101 or MOM. Like other programming languages, C++ also allows...

6 minutes read.

C++ vardiac() function

In the C++ programming language, the flexibility feature is provided by the variadic function. To understand more about flexibility, let's see the following syntax. Syntax: If we have to add two numbers,...

3 minutes read.

Single Handling in C++

Introduction: Single handling in C++ refers to a technique for processing multiple events or requests with a single function or handler rather than creating separate functions for each task. This allows...

5 minutes read.

Multiset in C++

Introduction Multisets are part of the C++ STL, or Standard Template Library. In C++, a multiset is a set of associative containers that hold ordered items. Items in a multiset can...

10 minutes read.

Divide by Zero Exception in C++

We use exception handling method to handle the divide by zero exception. Dividing a number with zero is generally mathematical error. We have to exception handling method to overcome this...

2 minutes read.

C++ Range-based For Loop

In C++ language, the range-based for loop was added, which is far superior than the ordinary For loop. The implementation of a range-based for loop doesn't really need much code. It's a...

4 minutes read.

Constructor Overloading

The program contains more than one constructor in a class with the same name, and different types of arguments are called constructor overloading. Calling of constructor depends on the number and types...

2 minutes read.

Implementing the sets without C++ STL containers

Many practical features and tools in C++ support us in programming competitions. One of these parts is a set from the Standard Template Library (STL), which offers an effective way...

6 minutes read.

How to Setup Environment for C++ Programming on Mac

Mac OS X code Installation There are so many environments available for C++. We are going to install jGrasp and Xcode in our mac operating system. Instruction for installation of jGrasp and...

2 minutes read.

Depth First Search Program to Traverse a Graph in C++

Depth First Search (DFS) is a technique that is used for transversing the graph. The process of Depth First Search (DFS) starts from the root node and then next comes...

6 minutes read.

Pure Virtual Function in C++ With Example Program

What is a Virtual Function? A virtual function is created inside a class with the keyword virtual. A virtual function does not have any value to be returned. Once a virtual...

3 minutes read.