Program to Find LCM and HCF of two numbers

By | July 2, 2021

LCM stands for Least Common Multiple and HCF stands for Highest common factor. Finding LCM and HCF of two numbers is an elementary school math problem. The HCF is also known as GCD (Greatest Common Divisor). You may know how to calculate LCM and HCF of two numbers using pen and paper, now let’s write a program that can accept two numbers from the user and return their LCM and HCF.

C Program to Find LCM and HCF of two numbers

#include <stdio.h>

int main() 
{
    int num1, num2, min, max, r, lcm , hcf;
    
    //ask user to enter both the numbers 
    printf("Enter two numbers (eg 12 5): ");
    scanf("%d %d", &num1, &num2);
    
    //compare both the number
    //find out maximum and minimum number
    if(num1>num2)
    {
    	max= num1;
    	min= num2;
	}
	else if(num2> num1)
	{
		max= num2;
		min = num1;
	}
	
	//if both the numbers are same
	//both the numbers are the HCF itself
	if(num1==num2)
	{
		hcf=num1;
	}
	//if numbers are not same
	else
	{
		do
		{
			//find the remainder
			r = max%min;
			//now set the divisor to maximum
			//and remainder to minimum
			max= min;
			min=r;
		}while(r!=0);  //keep looping until remainder become 0
		hcf = max;
	}
	
	lcm = (num1*num2)/hcf;
	printf("The HCF of %d %d is %d\n", num1, num2, hcf);
	
	printf("The LCM of %d %d is %d", num1, num2, lcm);
	return 0;
}

Output

Vamware
Enter two numbers (eg 12 5): 10 3
The HCF of 10 3 is 1
The LCM of 10 3 is 30

C++ Program to Find LCM and HCF of two numbers

#include <iostream>
using namespace std;

int main() 
{
     int num1, num2, min, max, r, lcm , hcf;
    
    //ask user to enter both the numbers 
    cout<<"Enter two numbers (eg 12 5): "; cin>>num1>> num2;
    
    //compare both the number
    //find out maximum and minimum number
    if(num1>num2)
    {
    	max= num1;
    	min= num2;
	}
	else if(num2> num1)
	{
		max= num2;
		min = num1;
	}
	
	//if both the numbers are same
	//both the numbers are the HCF itself
	if(num1==num2)
	{
		hcf=num1;
	}
	//if numbers are not same
	else
	{
		do
		{
			//find the remainder
			r = max%min;
			//now set the divisor to maximum
			//and remainder to minimum
			max= min;
			min=r;
		}while(r!=0);  //keep looping until remainder become 0
		hcf = max;
	}
	
	lcm = (num1*num2)/hcf;
	cout<<"The HCF of "<< num1<<" "<< num2<<" is "<< hcf<<endl;
	
	cout<<"The LCM of "<<num1 <<" "<<num2<<" is " <<lcm;
        return 0;
}

Output

Enter two numbers (eg 12 5): 500 7
The HCF of 500 7 is 1
The LCM of 500 7 is 3500

Python Program to Find LCM and HCF of two numbers

num1, num2 = map(int, input("Enter two numbers (eg 12 5): ").split())
# if both the numbers are same
# both the numbers are the HCF itself
if num1==num2:
    hcf = num1
    lcm = num1

# if numbers are not same
else:
    # find out maximum and minimum number
    maxi = max(num1, num2)
    mini = min(num1, num2)

    if maxi%mini ==0:
        hcf = mini
    else:
        while(maxi%mini):
            # find the remainder
            # set the divisor to maximum
            # and remainder to minimum
            r= maxi%mini
            maxi = mini
            mini = r
        hcf = mini
        lcm = (num1*num2)//hcf

print(f"The HCF of {num1} {num2} is:",hcf )
print(f"The LCM of {num1} {num2} is:", lcm)

Output

Enter two numbers (eg 12 5): 320 128
The HCF of 320 128 is: 64
The LCM of 320 128 is: 640

Conclusion

In this programming article, you learned how to find the HCF and LCM of two numbers in 3 different programming languages. Finding LCM and HCF is also one of the most common interview questions, carefully read and implement the above program of your own, so you won’t get confused in the interview.

If you like the above article and have any suggestions and query feel free to let us know by commenting down below.

Leave a Reply

Your email address will not be published. Required fields are marked *