Open In App

LCM of Two Numbers in C

Last Updated : 26 Feb, 2024
Improve
Improve
Like Article
Like
Save
Share
Report

In this article, we will learn how to write a C program to find the LCM of two numbers. LCM (Least Common Multiple) of two numbers is the smallest positive number that can be divided by both numbers without leaving a remainder. For example, the LCM of 15 and 25 is 75.

LCM of two number in C

Algorithm to Find LCM in C

  • Find the maximum of the two numbers and store them in a variable max.
  • Run a loop and check if max is divisible by both numbers.
    • if (max % x == 0 && max % y == 0)
  • If the condition is true, it means that max is the LCM of the two numbers.
  • If the condition is false, increment max by 1 and continue the loop to check the next number.

C Program To Find LCM of Two Numbers

C




// C program to find LCM of
// two numbers
#include <stdio.h>
  
// Driver code
int main()
{
    int x = 15, y = 25, max;
    max = (x > y) ? x : y;
  
    // While loop to check if max variable
    // is divisible by x and y
    while (1) {
        if (max % x == 0 && max % y == 0) {
            printf("The LCM of %d and %d is %d.", x, y,
                   max);
            break;
        }
  
        ++max;
    }
  
    return 0;
}


Output

The LCM of 15 and 25 is 75.

Complexity Analysis

  • Time complexity: O(x*y)
  • Auxiliary space: O(1)

LCM of Two Numbers using GCD

In mathematics, the LCM of two numbers is the product of two numbers divided by their GCD. So,

LCM(a, b) = (a x b)  /  GCD(a, b)

Refer to the article Program to Find GCD or HCF of Two Numbers to learn how to find the GCD of two numbers.

C Program To Find LCM of Two Numbers using GCD

C++




// C++ program to find LCM of two numbers
#include <iostream>
using namespace std;
  
// Recursive function to return gcd of a and b
long long gcd(long long int a, long long int b)
{
    if (b == 0)
        return a;
    return gcd(b, a % b);
}
  
// Function to return LCM of two numbers
long long lcm(int a, int b) { return (a / gcd(a, b)) * b; }
  
// Driver program to test above function
int main()
{
    int a = 15, b = 20;
    cout << "LCM of " << a << " and " << b << " is "
         << lcm(a, b);
    return 0;
}


Output

LCM of 15 and 20 is 60

Complexity Analysis

  • Time complexity: O(log(min(a, b)))
  • Auxiliary space: O(1)

Please refer to the complete article Program to find LCM of two numbers for more methods to find LCM of two numbers.



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads