求最大公约数和最小公倍数

  今天看到了这个求最大公约数和最小公倍数的题目,主要是方法够简洁,递归实现的,分享一下:

 //题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
    public static int[] method6(int m, int n) {
        //数组中第一个数放最大公约数,第二个数放最小公倍数
        int[] arr = new int[2];
        //保证m要大于n,否则就交换值
        if (m < n) {
            int temp = n;
            n = m;
            m = temp;
        }
        int gy = gy(m, n);
        arr[0] = gy;//最大公约数
        arr[1] = m * n / gy;//最小公倍数
        return arr;
    }

    //获取最大公约数
    public static int gy(int a, int b) {
        if (a % b == 0) return b;
        return gy(b, a % b);
    }

 

posted @ 2020-08-13 20:31  java小新人  阅读(469)  评论(0编辑  收藏  举报