java求最大公约数

时间:2022-04-03 00:33:52

public class ArithmeticTest1 {
    public static void main(String[] args) {
        System.out.println(gab1(88,72));
        System.out.println(gab2(88,72));
        /**
         * gab1(gab1(452,546),90)求取三个数的最大公约数
         */
        System.out.println(gab1(gab1(452,546),90));
    }
    /**
     * 相除法获取两个数的最大公约数
     * @param a
     * @param b
     * @return
     */
    public static int gab1(int a,int b){
        while(b!=0){
            int temp=a%b;
            a=b;
            b=temp;
        }
        return a;
    }
    /**
     * 相减法获取两个数的最大公约数
     * @param a
     * @param b
     * @return
     */
    public static int gab2(int a,int b){
        while(a!=b){
            if(a>b){
                a=a-b;
            }else {
                b=b-a;
            }
        }
        return a;
    }
}