# 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```
We're accepting well-written guest posts and this is a great opportunity to collaborate : Contact US