;

# Java Program to Find HCF or GCD of Two Numbers

###### Tutorialsrack 23/05/2021 Java

In this java program, you’ll learn how to find the HCF(Highest Common Factor) or GCD (Greatest Common Divisor). In this program, we will use two different methods to find the HCF or GCD: using Loops and Library Function.

Java Program to Find HCF or GCD of Two Numbers Using the Euclidean Algorithm and Recursion

Java Program to Find HCF or GCD of Two Numbers Using Recursion

## What is HCF?

An HCF or GCD of two or more numbers is the largest positive integer that divides each of the numbers. For example, the HCF or GCD of 10 and 12 is 2.

Here is the code of the program to find the HCF(Highest Common Factor) or GCD (Greatest Common Divisor) using for loop.

### Example 1: Java Program to Find HCF or GCD of Two Numbers Using While loop

##### Example 1: Java Program to Find HCF or GCD of Two Numbers Using While loop
``````// Java Program to Find GCD of two Numbers

import java.util.Scanner;

public class JavaPrograms {

public static void main(String[] args) {

// scanner class declaration
Scanner sc = new Scanner(System.in);
// input from the user
System.out.print("Enter the first number : ");
int num1 = sc.nextInt();
// input from the user
System.out.print("Enter the second number : ");
int num2 = sc.nextInt();
int n = 1;
System.out.print("HCF of " + num1 + " and " + num2 + " is ");
if (num1 != num2) {
while (n != 0) {
// storing remainder
n = num1 % num2;
if (n != 0) {
num1 = num2;
num2 = n;
}
}
// result
System.out.println(num2);
} else
System.out.println("Wrong Input");
// closing scanner class(not compulsory, but good programming practice)
sc.close();

}
}``````
##### Output

Enter the first number : 48

Enter the second number : 18

HCF of 48 and 18 is 6

### Example 2: Java Program to Find HCF or GCD of Two Numbers Using For Loop

##### Example 2: Java Program to Find HCF or GCD of Two Numbers Using For Loop
``````// Java Program to Find GCD of two Numbers using For Loop

import java.util.Scanner;

public class JavaPrograms {

public static void main(String[] args) {

// scanner class declaration
Scanner sc = new Scanner(System.in);
// input from the user
System.out.print("Enter the first number : ");
int num1 = sc.nextInt();
// input from the user
System.out.print("Enter the second number : ");
int num2 = sc.nextInt();
int GCD = 1, i;

// For Loop for iteration to find the GCF of both program
for (i = 1; i <= num1 && i <= num2; i++) {
/*
* Checking the modulation with both numbers against Iteration values
*/
if (num1 % i == 0 && num2 % i == 0) {
// Replacing the GCD value with the higher Iteration value
GCD = i;
}
}
System.out.print("HCF of " + num1 + " and " + num2 + " is " + GCD);

// closing scanner class(not compulsory, but good programming practice)
sc.close();

}
}``````
##### Output

Enter the first number : 48

Enter the second number : 64

HCF of 48 and 64 is 16

### Example 3: Java Program to Find HCF or GCD of Two Numbers Using Library Function

##### Example 3: Java Program to Find HCF or GCD of Two Numbers Using Library Function
``````// Java Program to Find GCD of two Numbers Using Library Function

import java.util.Scanner;
import java.math.*;

public class JavaPrograms {

public static void main(String[] args) {

// scanner class declaration
Scanner sc = new Scanner(System.in);
// input from the user
System.out.print("Enter the first number : ");
BigInteger num1 = sc.nextBigInteger();
// input from the user
System.out.print("Enter the second number : ");
BigInteger num2 = sc.nextBigInteger();

//Getting the GCD of numbers using in-built function of math library called gcd()
BigInteger GCD = num1.gcd(num2);

System.out.print("HCF of " + num1 + " and " + num2 + " is " + GCD);

// closing scanner class(not compulsory, but good programming practice)
sc.close();

}
}``````
##### Output

Enter the first number : 48

Enter the second number : 6

HCF of 48 and 6 is 6