C Program to Find HCF (GCD) and LCM Using Recursive Function

Question: Write a program in C to find Highest Common Factor (HCF) ( also known as Greatest Common Divisor (GCD)) and Least Common Multiple (LCM) using Recursive Function.

HCF and LCM Using Recursive Function


#include <stdio.h>

long int hcf(long int, long int);

int main()
{
  long int number1, number2, gcd, lcm;
  printf("Enter two integer numbers:\n");
  scanf("%ld%ld", &number1, &number2);

  gcd = hcf(number1, number2);
  lcm = (number1*number2)/gcd;

  printf("HCF of %ld and %ld = %ld\n", number1, number2, gcd);
  printf("LCM of %ld and %ld = %ld\n", number1, number2, lcm);

  return 0;
}

long int hcf(long int a, long int b) {
  if (b == 0)
  {
    return a;
  }
  else
  {
    return hcf(b, a % b);
  }
}

Output

Enter two integer numbers:
24
36
HCF of 24 and 36 = 12
LCM of 24 and 36 = 72