js求两正整数的约分结果

2020-07-07  本文已影响0人  活泼lee

思路就是先求得两正整数(m,n)的最大公因数x,
约分结果即为m/x ,n/x
公因数的求得思路为找到两数中较小一位,向下循环遍历得到一位最大正整数,使m和n同时对它取余结果为0
下面看下代码

//m,n为正整数的分子和分母
function reductionTo(m, n) {
    var arr = [];
    if (!isInteger(m) || !isInteger(n)) {
        console.log('m和n必须为整数');
        return;
    } else if (m<=0||n <= 0) {
        console.log('m和n必须大于0');
        return;
    }
    var a = m;
    var b = n;
    (a >= b) ? (a = m, b = n) : (a = n, b = m);
    if (m != 1 && n != 1) {
        for (var i = b; i >= 2; i--) {
            if (m % i == 0 && n % i == 0) {
                m = m / i;
                n = n / i;
            }
        }
    }
    arr[0] = m;
    arr[1] = n;
    return arr;
}
上一篇 下一篇

猜你喜欢

热点阅读