GCD

    Our FREE site is mostly funded by the Amazon ads ⇓below⇓.

    Support us by clicking ⇑above⇑ next time you plan to buy a product on Amazon.

    package Maths;
    
    /**
     * This is Euclid's algorithm which is used to find the greatest common denominator
     * Overide function name gcd
     *
     * @author Oskar Enmalm 3/10/17
     */
    public class GCD {
    
        /**
         * get greatest common divisor
         *
         * @param num1 the first number
         * @param num2 the second number
         * @return gcd
         */
        public static int gcd(int num1, int num2) {
            if (num1 < 0 || num2 < 0) {
                throw new ArithmeticException();
            }
    
            if (num1 == 0 || num2 == 0) {
                return Math.abs(num1 - num2);
            }
    
            while (num1 % num2 != 0) {
                int remainder = num1 % num2;
                num1 = num2;
                num2 = remainder;
            }
            return num2;
        }
    
        /**
         * get greatest common divisor in array
         *
         * @param number contains number
         * @return gcd
         */
        public static int gcd(int[] number) {
            int result = number[0];
            for (int i = 1; i < number.length; i++)
                // call gcd function (input two value)
                result = gcd(result, number[i]);
    
            return result;
        }
    
        public static void main(String[] args) {
            int[] myIntArray = {4, 16, 32};
    
            // call gcd function (input array)
            System.out.println(gcd(myIntArray)); // => 4
            System.out.printf("gcd(40,24)=%d gcd(24,40)=%d\n", gcd(40, 24), gcd(24, 40)); // => 8
        }
    }