Talk:Java Training Course/JT05

From tehowiki
Jump to navigation Jump to search

Program

public class GreatestCommonDivisor {
    /** Computes the greatest common divisor (GCD) of 2 integers
     *  @param a first integer
     *  @param b second integer
     *  @return gcd(a,b)
     */
    public static int gcd(int a, int b) {
        int result = Math.abs(a);
        if (result != 1) {
            int p = result;
            int q = Math.abs(b);
            while (q != 0) {
                int temp = q;
                q = p % q;
                p = temp;
            }
            result = p;
        } // if > 1
        return Math.abs(result);
    } // gcd(a, b)
    
    public static void main(String[] args) {
        int a = Integer.parseInt(args[0]);
        int b = Integer.parseInt(args[1]);
        System.out.println("gcd(" + a + "," + b + ") = " + gcd(a, b));
    } // main
} // GreatestCommonDivisor

Test Results

./JTC$ javac GreatestCommonDivisor.java 
./JTC$ java GreatestCommonDivisor 0 0
gcd(0,0) = 0
./JTC$ java GreatestCommonDivisor 0 1
gcd(0,1) = 1
./JTC$ java GreatestCommonDivisor 1 0
gcd(1,0) = 1
./JTC$ java GreatestCommonDivisor 1 1
gcd(1,1) = 1
./JTC$ java GreatestCommonDivisor 4 4 
gcd(4,4) = 4
./JTC$ java GreatestCommonDivisor 12 8
gcd(12,8) = 4
./JTC$ java GreatestCommonDivisor 3 5
gcd(3,5) = 1
./JTC$ java GreatestCommonDivisor 81 24
gcd(81,24) = 3
./JTC$ java GreatestCommonDivisor 4096 256
gcd(4096,256) = 256