Hackerrank Solution: Computing the GCD


Given two integers, x and y, a recursive technique to find their GCD is the Euclidean Algorithm. The algorithm states that, for computing the GCD of two positive integers x and y, if x and y are equal, GCD(x, y) = x. Otherwise GCD(x, y) = GCD(x - y, y) if x > y. There are a few optimizations that can be made to the above logic to arrive at a more efficient implementation. Task Given the starter code, you need to complete a function body that returns the GCD of two given integers x and y. The task of reading in input and printing the output will be handled by us. Input Format One line of input containing space separated integers. Output Format Output one integer, the GCD of the two given numbers. Sample Input 1 5 Sample Output 1 Constraints Sample Return Values: GCD(1,5) = 1 GCD(10,100) = 10 GCD(22,131) = 1 Solution

import java.io.*;
import java.util.*;

public class Solution {
    public static void main(String[] args) {
        Scanner reader = new Scanner(System.in);
        int first = reader.nextInt();
        int second = reader.nextInt();
        System.out.println(gcd(first, second));
    }
    public static int gcd(int m, int n){
         if(n == 0)
            return m;
        else
            return gcd(n, m%n);
    }
}