使用js写一个方法将一个正整数分解质因数,输出为数组

你可以使用以下的JavaScript函数来将一个正整数分解为质因数,并将结果输出为数组:

function primeFactors(n) {
    let factors = [];
    let divisor = 2;

    // 判断输入是否为正整数
    if (n <= 0 || !Number.isInteger(n)) {
        throw new Error('Input must be a positive integer.');
    }

    // 当n为1时,没有质因数
    if (n === 1) {
        return [];
    }

    while (n >= 2) {
        // 如果divisor是n的因数,则将其添加到质因数数组中,并更新n
        if (n % divisor === 0) {
            factors.push(divisor);
            n /= divisor;
        } else {
            // 否则,尝试下一个可能的因数
            divisor++;
        }
    }

    return factors;
}

// 示例
console.log(primeFactors(315));  // 输出: [3, 3, 5, 7]

这个函数从2开始,尝试每一个可能的因数,直到找到所有的质因数。每次找到一个因数,就将其添加到结果数组中,并更新待分解的数。如果当前的因数不是待分解数的因数,就尝试下一个数。这个过程会一直持续到待分解数变为1为止。

posted @   王铁柱6  阅读(16)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示