Google News
logo
C Program to Find LCM of two Numbers

What is LCM?

LCM stands for lowest common multiple. LCM of two integers num1 and num2 is the smallest positive integer that is perfectly divisible by both the numbers, perfectly means the remainder is zero.

For example, LCM of 15 and 50 is 150 because 150 is the smallest number that can be perfectly divisible by both 15 and 50.

Example 1: Program to find LCM of two numbers using while loop

In this example, program prompts the user to input the two integers. The entered positive integers are stored in num1 and num2 respectively using scanf() function.

The largest number between these two is stored in another variable max. The LCM cannot be less than max value.
Program :
#include <stdio.h>
int main() {
  int num1, num2, max;
  printf("Enter two positive integers: ");
  scanf("%d %d", &num1, &num2);

  // greater number between num1 and num2 is stored in max
  max = (num1 > num2) ? num1 : num2;

  while (1) {
    if (max % num1 == 0 && max % num2 == 0) {
      printf("LCM of input numbers %d and %d is %d.", num1, num2, max);
      break;
    }
    ++max;
  }
  return 0;
}
Output :
Enter two positive integers: 15
50
LCM of input numbers 15 and 50 is 150.

Example 2: Program to find LCM from GCD of two numbers :

There is another way to find the LCM of two numbers using this formula LCM = (num1*num2)/GCD. In this example, we are finding the GCD of two input numbers and then calculating the LCM using the mentioned mathematical formula.
Program :
#include <stdio.h>
int main() {
  int num1, num2, i, gcd, lcm;
  printf("Enter two positive integers: ");
  //storing user input into num1 and num2
  scanf("%d %d", &num1, &num2);

  for (i = 1; i <= num1 && i <= num2; ++i) {

    // check if the current value of i is a
    // factor of both integers num1 and num2
    if (num1 % i == 0 && num2 % i == 0)
      gcd = i;
  }

  //Mathematical formula to calculate LCM from GCD
  lcm = (num1 * num2) / gcd;

  printf("LCM of two input numbers %d and %d is: %d.", num1, num2, lcm);
  return 0;
}
Output :
Enter two positive integers: 12
38
LCM of two input numbers 12 and 38 is: 228.