a recursive function that calculates the greatest common divisor from user's input in java

 * Java program to demonstrate How to find Greatest Common Divisor or GCD of 
 * two numbers using Euclid’s method. There are other methods as well to 
 * find GCD of two number in Java but this example of finding GCD of two number
 * is most simple.
 * @author Javin Paul
public class GCDExample {
    public static void main(String args[]){
        //Enter two number whose GCD needs to be calculated.      
        Scanner scanner = new Scanner(;
        System.out.println("Please enter first number to find GCD");
        int number1 = scanner.nextInt();
        System.out.println("Please enter second number to find GCD");
        int number2 = scanner.nextInt();
        System.out.println("GCD of two numbers " + number1 +" and " 
                           + number2 +" is :" + findGCD(number1,number2));

     * Java method to find GCD of two number using Euclid's method
     * @return GDC of two numbers in Java
    private static int findGCD(int number1, int number2) {
        //base case
        if(number2 == 0){
            return number1;
        return findGCD(number2, number1%number2);

Please enter first number to find GCD
Please enter second number to find GCD
GCD of two numbers 54 and 24 is :6
public int gcd(int a, int b) {
   if (b==0) return a;
   return gcd(b,a%b);
import scanner and instantiate scanner class;
declare your method with two parameters
declare a third variable;
set condition;
swap the parameter values if condition is met;
set second conditon based on result of first condition;
divide and assign remainder to the third variable;
swap the result;
in the main method, allow for user input;
Call the method;

public class gcf {
    public static void main (String[]args){//start of main method
        Scanner input = new Scanner (;//allow for user input
        System.out.println("Please enter the first integer: ");//prompt
        int a = input.nextInt();//initial user input
        System.out.println("Please enter a second interger: ");//prompt
        int b = input.nextInt();//second user input

       Divide(a,b);//call method
   public static void Divide(int a, int b) {//start of your method

    int temp;
    // making a greater than b
    if (b > a) {
         temp = a;
         a = b;
         b = temp;

    while (b !=0) {
        // gcd of b and a%b
        temp = a%b;
        // always make a greater than b
        a =b;
        b =temp;

    System.out.println(a);//print to console

New to Communities?

Join the community