# Java Program - Find HCF of Two Numbers

**HCF** stands for **Highest Common Factor**. The HCF of two numbers is the largest number that divides both of them.

For example - HCF of 20 and 25 is 5, and HCF of 50 and 100 is 50.

### Method 1: Using For Loop to find HCF of two numbers

In the below example, for loop is used to iterate the variable *i* from 0 to the smaller number. If both numbers are divisible by *i*, then it modifies the HCF and finally gives the HCF of two numbers.

public class MyClass { public static void main(String[] args) { int x = 50; int y = 100; int hcf = 1; int temp; if (x > y) { temp = x; x = y; y = temp; } for(int i = 1; i < (x+1); i++) { if (x%i == 0 && y%i == 0) hcf = i; } System.out.println("HCF of "+ x +" and "+ y +" is: "+ hcf); } }

The above code will give the following output:

HCF of 50 and 100 is: 50

### Method 2: Using While Loop to find HCF of two numbers

In the below example, larger number is replaced by a number which is calculated by subtracting the smaller number from the larger number. The process is continued until the two numbers become equal which will be HCF of two numbers.

public class MyClass { public static void main(String[] args) { int p, q, x, y; p = x = 20; q = y = 25; while (x != y) { if (x > y) x = x - y; else y = y - x; } System.out.println("HCF of "+ p +" and "+ q +" is: "+ x); } }

The above code will give the following output:

HCF of 20 and 25 is: 5

### Method 3: Using the recursive function to find HCF of two numbers

In the below example, recursive function is used. In this method, instead of using subtraction operator(as in above example), modulus operator is used. This method is also known as **Euclidean algorithm**.

public class MyClass { static int hcf(int x, int y) { if (y == 0) return x; return hcf(y, x%y); } public static void main(String[] args) { int x = 250; int y = 475; System.out.println("HCF of "+ x +" and "+ y +" is: "+ hcf(x,y)); } }

The above code will give the following output:

HCF of 250 and 475 is: 25

### Recommended Pages

- Java Program - To Check Prime Number
- Java Program - Bubble Sort
- Java Program - Selection Sort
- Java Program - Maximum Subarray Sum
- Java Program - Reverse digits of a given Integer
- Java Program - Merge Sort
- Java Program - Shell Sort
- Stack in Java
- Queue in Java
- Java Program - Find LCM of Two Numbers
- Java Program - To Check Whether a Number is Palindrome or Not
- Java Program - To Check Whether a String is Palindrome or Not
- Java Program - Heap Sort
- Java Program - Quick Sort
- Java - Swap Two Numbers without using Temporary Variable
- Java Program - To Check Armstrong Number
- Java Program - Counting Sort
- Java Program - Radix Sort
- Java Program - Find Largest Number among Three Numbers
- Java Program - Print Floyd's Triangle