Summary: In this programming example, we will learn to calculate the lcm of two numbers using the C language.
The LCM (Least Common Multiple) of any two numbers is the smallest possible integer that is divisible by both.
For example, lcm of 6 and 15 is 30.
Also, the LCM of any two number is always greater or equal to one of them.
Method 1: Using While Loop
#include <stdio.h>
int main() {
int a, b;
printf("Enter two numbers \n");
scanf("%d", &a);
scanf("%d", &b);
/*
*LCM is always greater than or equal to the-
*maximum of the given two numbers
*/
int lcm = (a > b) ? a : b;
//loop until divisible by both
while(1){
if(lcm%a==0 && lcm%b==0)
break;
lcm++;
}
//output the LCM
printf("LCM of %d and %d is: %d", a, b, lcm);
return 0;
}
Output:
Enter two numbers
6
15
LCM of 6 and 15 is: 30
In this method, we first store the maximum of the two numbers into the lcm
and inside while loop, we check if the lcm
is divisible by both the numbers or not.
If yes, then the current value of lcm
is the LCM of the input numbers otherwise we increment the value of lcm
(i.e. lcm++
) and repeat the process until lcm is divisible by both.
Method 2: Using GCD
For any two numbers a and b, the following relationship holds true:
a * b = LCM * GCD
So we can also get LCM of any two numbers using the formula (a*b)/GCD
.
#include <stdio.h>
//function to find the GCD of two numbers
int findGCD(int a, int b){
int temp;
while(b){
temp = b;
b = a%b;
a = temp;
}
return a;
}
//main method
int main() {
int a, b;
printf("Enter two numbers \n");
scanf("%d", &a);
scanf("%d", &b);
//Step 1: First find GCD
int gcd = findGCD(a, b);
//Step 2: Put Value of GCD in the formula
int lcm = (a*b)/gcd;
//output the LCM
printf("LCM of %d and %d is: %d", a, b, lcm);
return 0;
}
Output:
Enter two numbers
5
15
LCM of 5 and 15 is: 15
In this tutorial, we learned to find the LCM of two numbers using the C programming language.