# C Program to Find Gcd of Two Numbers

gcd program in C. C program to find gcd of two numbers in C: The following C program finds the gcd of two integers (numbers) using non-recursive function i.e. without using recursion. The HCF or GCD of two numbers is the largest number that can exactly divide both the numbers without leaving any remainder. ## C program to find gcd of two numbers

``````/* GCD of two numbers in C */

#include<stdio.h>

int main()
{
int i, gcd, num1, num2;

printf("\n Enter two numbers:- ");
scanf(" %d %d", &num1, &num2);

for(i=1; i <= num1 && i <= num2; ++i)
{
if(num1%i==0 && num2%i==0)
gcd = i;
}

printf("\n G.C.D of %d and %d is %d", num1, num2, gcd);

return 0;
}

/* Output of above code:-

Enter two numbers:- 10 20
G.C.D of 10 and 20 is 10

*/``````

## C program to find gcd of two numbers using recursion

``````/* C program to find gcd of two numbers using recursive function */

#include<stdio.h>

int calculate_GCD(int num1, int num2)
{
if (num2 != 0)
return calculate_GCD(num2, num1%num2);
else
return num1;
}

int main()
{
int num1, num2;

printf("\n Enter two integers:- ");
scanf("%d %d", &num1, &num2);

printf("\n HCF or GCD of %d and %d is %d.", num1, num2, calculate_GCD(num1, num2));

return 0;
}

/* Output of above code:-

Enter two integers:- 5 10
HCF or GCD of 5 and 10 is 5.

*/``````

## C program to find gcd of two numbers using while loop

``````/* GCD of two numbers in C */

#include<stdio.h>

int main()
{
int i=1, gcd, num1, num2;

printf("\n Enter two numbers:- ");
scanf(" %d %d", &num1, &num2);

while(i <= num1 && i <= num2;)
{
++i;
if(num1%i==0 && num2%i==0)
gcd = i;
}

printf("\n G.C.D of %d and %d is %d", num1, num2, gcd);

return 0;
}

/* Output of above code:-

Enter two numbers:- 10 20
G.C.D of 10 and 20 is 10

*/``````

## gcd of n numbers in C

``````/* C program to find GCD of n numbers using function*/

#include<stdio.h>

int calculate_GCD(int num1, int num2)
{
if (num2 != 0)
return calculate_GCD(num2, num1%num2);
else
return num1;
}

int main()
{
int i,j,size,a,hcf;

printf("Enter how many numbers :");
scanf("%d",&size);

for(i=0;i<size;i++)
{
printf("Enter a Number :");
scanf("%d",& a[i]);
}

for(i=0;i<size-1;i++)
{
hcf=calculate_GCD(a[i],a[i+1]);
a[i+1]=hcf;
}

printf("\n GCD of %d and %d is %d", a[i], a[i+1], hcf);

}

/* Output of above code:-

Enter how many numbers:- 5
Enter a Number : 5
Enter a Number : 10
Enter a Number : 15
Enter a Number : 40
Enter a Number : 100
GCD of input numbers is 5

*/``````
For most of the times we are asked calculate LCM (Lowest Common Multiple) along with the GCD. The following function calculates the LCM of two numbers num1, and num2.

## C programming function to find LCM of two numbers

``````/* function to find LCM of two numbers in C*/

int find_lcm(int num1, int num2)
{
int n;

n = (num1 > num2) ? num1 : num2;

while (1)
{
if(n%num1==0 && n%num2==0)
return n;
++n;
}
}``````