onlinecode

C Program to Find GCD of two Numbers

C Program to Find GCD of two Numbers

Examples on different ways to calculate greatest common divisor (gcd) of two integers (vlaue of both positive and negative integers ) using loops and decision making statements in C programing.

The HCF (highest common factor) or GCD (greatest common divisor) of two integers is the largest integer that can exactly divide both numbers (without a remainder).

hear we will show you 3 different way to find greatest common divisor (gcd).

Simple calculate and method of GCD

82 = 21 411 
152 = 23 191 

The answer is: 21  = 2

Example 1 :: GCD Using for loop and if Statement

// include header file
#include <stdio.h>

// main function
int main()
{
    int num1, num2, i, gcd;
	
	// insert data  
    printf("Enter two integers value : ");
    scanf("%d %d", &num1, &num2);

	// calculate gcd
    for(i=1; i <= num1 && i <= num2; ++i)
    {
        // Checks if i is factor of both integers
        if(num1%i==0 && num2%i==0)
            gcd = i;
    }
	// print result
    printf("\nGCD of %d and %d = %d", num1, num2, gcd);
	// return 0
    return 0;
}

Output

Enter two integers value :  82 
152
GCD of 82 and 152 = 2

In this program, two integers entered by the user are stored in variable num1 and num2. loop is iterated until “i” is less than “num1” and “num2”.

In each iteration, if both “num1” and “num2” are exactly divisible by “i”, the value of “i” is assigned to gcd.

When the for loop is completed, the greatest common divisor(gcd) of two numbers is assigned in variable “gcd”.

Example 2 :: GCD Using while loop and if-else Statement

// include header file
#include <stdio.h>

// main function
int main()
{
    int num1, num2;
    
	// insert data  
    printf("Enter two positive integers value : ");
    scanf("%d %d",&num1,&num2);
	
	// calculate gcd
    while(num1!=num2)
    {
        if(num1 > num2)
            num1 -= num2;
        else
            num2 -= num1;
    }
	
	// print result
    printf("\nGCD IS = %d",num1);
	// return 0
    return 0;
}

Output

Enter two positive integers value : 82 
152
GCD IS = 2

This is a better way to find the greatest common divisor(GCD). In this method, smaller integer is subtracted from the larger integer, and the result is assigned to variable who is holding larger integer value. This process is continued until “num1” and “num2” are equal.

The above two programs works as intended only if the user pass positive integers(value). Here is a little change of the second example to find the GCD for both positive and negative type of integers.

Example 3 :: GCD for both positive and negative numbers

// include header file
#include <stdio.h>

// main function
int main()
{
    int num1, num2;
	
	// insert data  
    printf("Enter two integers value : ");
    scanf("%d %d",&num1,&num2);

    // if user enters negative number, 
	// then sign of the number will be changed to positive
    num1 = ( num1 > 0) ? num1 : -num1;
    num2 = ( num2 > 0) ? num2 : -num2;

	// calculate gcd
    while(num1!=num2)
    {
        if(num1 > num2)
            num1 -= num2;
        else
            num2 -= num1;
    }
	
	// print result
    printf("\nGCD IS = %d",num1);
	// return 0
    return 0;
}

Output

Enter two integers value : 82 
-152
GCD IS = 2
Exit mobile version