C Tutorial

C Tutorial C Language Environment Setup Execution flow of C program C printf and Scanf C Data type C Token Variable in C Operators in C Comments in C Escape Sequence in C C – Storage Classes C Decision control statement Loop Statement in C Break, continue and goto statement in C Type Casting in C Function in C Recursion in C String in C C Array Pointer in C Dynamic memory allocation C –Structure Nested Structure in C Union in C File Handling in C C pre-processor Static Function In C Sizeof In C Selection Sort In C Scope Of Variables In C Runtime Vs Compile Time In C Random Access Lseek In C Queue Implementation In C Pseudo Code In C Prototype In C Pointer To Pointer In C Pointer Arithmetic In C Passing Array To Function In C Null Character In C Merge Sort In C Macros In C Library Functions In C Memory Leak In C Int In C Goto And Labels In C Fibonacci Series In C Fflush In C Derived Data Types In C Data Types In C Const Vs Volatile In C Character Set In C Character Class Tests In C Calloc In C C Pointers Arrays In C Include In C Clrscr In C C Vs Java String Literals In C Types Of Pointers In C Variables In C Volatile In C Why C Is A Middle Level Language Infix To Postfix Program In C Ceil function in C LCM of two numbers in C Quick sort in C Static in C function pointer as argument in C Top Array Keywords in C Add two numbers using the function in C Armstrong program in C using function Array, Declaring Arrays and Array Initialization Limitations of Inline Function in C Merge and Merge sort with example in C Do-While Loop in C For Loop in C While-Loop in C Difference between while and do-while loop in C Array Of Structures in C Data Structures And Algorithms in C Types Of Structures In C How to Avoid Structure Padding in C Use of Structure in C Do WHILE LOOP in C Programming Examples For Loop in C Programming Examples Entry Control Loop in C Exit control loop in C Infinite loop in C Nested loop in C pow() function in C String Handling functions in C Prime Number code in C Factorial Program in C using For Loop Factorial Program in C Using While Loop Fibonacci Series in C Using For Loop Fibonacci series in C using while loop Prime Number Program in C using for Loop While Loop in C programming examples Built-in functions in C Assert() Function C vs Java Strings Call Back Function in Embedded C Else If Ladder fgets() function Ftell() Function getc() function getch() function gets() function Heap Sort Nested if-else statement Pi() Function Positioning of file Write() function abs() function in C Attributes in C C program to find factorial of a number using Recursion Ferror() in c fopen() function in C Fibonacci series program in C using Recursion Formatted Input and output function in C Snake Game in C User Defined Functions in C Beep() function in C Cbrt() function in C Hook() function in C Isalnum() function in C C Program to find the Roots of a Quadratic Equation C Switch Statements Difference between rand() and srand() function in C Difference between while and for loop in C Doubly Linked list in C Example of Iteration in C How to use atoi() function in C How to use floor() function in C How to use sine() function in C How to use Typedef Struct in C Integer Promotions in C C Program Swap Numbers in cyclic order Using Call by Reference C Program to Find Largest Number Using Dynamic Memory Allocation C Program to Find the Largest Number using Ternary Operator C/C++ Program to Find the Size of int, float, double and char Find the Largest Three Distinct Elements in an Array using C/C++ Loop Questions in C Modulus on Negative Numbers in C Multiplication table program in C using For loop Nested Loops in C Programming Examples C Program for Mean and Median of an Unsorted Array Results of Comparison Operations in C and C++ Reverse a Stack using Recursion in C Simple hash() function in C strcat() Function in C Sum of N numbers in C using For loop Use of free() function in C Write a program that produces different results in C and C++ C Function Argument and Return Values Keywords in C Bank management system in C Calendar application in C Floor() Function in C Free() Function in C How to delete a file in C How to move a text in C Remove an element from an array in C Unformatted input() and output() function in C What are linker and loader in C fork() in C GCD program in C Branching Statements in C Comma Operator in C Control statement in C Double Specifier in C How to create a binary file in C Long int in C Palindrome Number in C Pure Virtual Function in C Run Time Polymorphism in C Types of Array in C Types of Function in C What is a buffer in C What is required in each C Program Associativity of Operators in C Bit Stuffing Program in C Actual and Formal Parameters Addition of two Numbers in C Advantages of function in C Arithmetic Progression Program in C Binomial Coefficient Program in C Difference between Array and List in C Diffie-Hellman Algorithm in C How to convert a number to words in C How to convert a string to hexadecimal in C Difference between If and Switch Statement in C

LCM of two numbers in C

LCM is a mathematical term which stands for Least Common Multiple. LCM of any two numbers is the smallest positive value(number) which is evenly divisible by the two given numbers.

Consider a and b as two numbers and L denotes the LCM of a and b.

Now, if a=4 and b=6

Then, L will be the smallest number which is divisible by both a and b, i.e., 4 and 6, without leaving any remainder.

LCM of two numbers in C

                                    Figure 1 :  Finding the common multiples of 4 and 6

There are various ways to find LCM of two numbers, some of them are as follows:

  1. Prime factorization
  2. Euclidean algorithm
  3. Listing method ( figure 1)

Algorithm of LCM

The mathematics behind to find the LCM of two numbers can be deduced to an algorithm:

1) Initialize the variables a and b.

2) Store the common multiples of a and b into the variable L.

3) Check whether L is divisible by both a and b.

4) If step 3 is true, display L as the LCM of two numbers (a and b).

5) Else, increase the value of L, and go to step 3.

6) Halt the program.

Finding LCM of two numbers using C programming

Before getting our hands dirty with the coding part, let’s try to deduce the logic behind this mathematical concept.

Consider the same set of examples discussed earlier, where L was the LCM of two numbers a and b.

? L is the smallest number divisible by a and b.

Now, if we think about the logical part (in C code) which will result in our output, the range L will lie between 1 to a*b (product of a and b). Here we are considering the base case to denote the range of L.

i.e.,   L = 1 to L = a*b                                   - (i)

Also, from Step 3 of the algorithm:

      ( L%a == 0 && L%b==0)                     - (ii)

Program 1

int main()
	{
	
	int a,b,L;   // declaring variables


	printf("Enter two numbers");
	
	scanf("%d %d", &a,&b);


	for( L=1; L<= a *b ; L++)              //from statement (i)


	    if( L%a==0 && L%b==0)	         //from statement (ii)
	    break;


	printf("LCM is %d", L);
	
	}

Output:

LCM of two numbers in C

Program 2: LCM of two numbers using GCD

Here, we will follow a basic formula to find the LCM of two numbers a and b.

The formula is as follows:

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

*GCD stands for Greatest Common Divisor. The GCD is the largest integer which will divide each of the given numbers evenly.

Let’s understand this using C programming:

int main()
     {
          int num1, num2, lcm, temp, gcd;  //declaring the variables


    	printf("Enter any two integer values \n");
    	scanf("%d %d", &num1, &num2);


 	   int a = num1;
    	   int b = num2;
    
    	while (num2 != 0) 
{
 	temp = num2;                             // storing the output values in temp variable
 	num2 = num1 % num2;
 	num1 = temp;
           }
         gcd = num1;
         lcm = (a * b) / gcd;
         printf("lcm of %d and %d = %d", a, b, lcm);
         return 0;


      }

Output: 

LCM of two numbers in C

Program 3: LCM of two numbers using function

int fun_lcm(int a,int b);                      // function declaration   
 int main()  
{  
    int num1, num2, lcm;
    printf ("Enter any two numbers :\n");  
    scanf ("%d %d", &num1, &num2);  
    lcm = fun_lcm( num1, num2);      // function calling  
    printf ( " \n LCM of %d and %d is %d. ", num1, num2, lcm);  
    return 0;  
}  
  
int fun_lcm ( int num1, int num2)   // function definition   
{  
    static int max = 1;  
    if ( max % num1  == 0 && max % num2 == 0)  
    {  
        return max;  
    }  
    else  
    {  
        max++;  
        fun_lcm( num1, num2);  
        return max;  
    }
  } 

Output:

LCM of two numbers in C

Program 4: LCM of two numbers using recursion

int lcm(int a, int b);


int main()
{
    int num1, num2, LCM;


    /* Input two numbers from user */


    printf("Enter any two numbers to find lcm: ");
    scanf("%d%d", &num1, &num2);
    
    
    if(num1 > num2)
        LCM = lcm(num2, num1);
    else
        LCM = lcm(num1, num2);
        
    printf("LCM of %d and %d using recursive function is = %d", num1, num2, LCM);
    
    return 0;
}


//Recursive function to find lcm of two numbers 'a' and 'b'.


int lcm(int a, int b)
{
    static int multiple = 0;
    
    /* Increments multiple by adding max value to it */


    multiple += b;
    


     // Base case of recursion or recursive function


    if((multiple % a == 0) && (multiple % b == 0))
    {
        return multiple;
    }
    else 
    {
        return lcm(a, b);
    }
}

Output:

LCM of two numbers in C



ADVERTISEMENT
ADVERTISEMENT