题解 | 质数因子

质数因子

https://www.nowcoder.com/practice/196534628ca6490ebce2e336b47b3607

const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;

void async function () {
    let num = await readline();
    num = parseInt(num);

    let ans = "";
    
    // 处理2,1不是质数
    while (num % 2 === 0) {
        ans += "2 ";
        num = num / 2;
    }
    
    // 处理奇数因子(从 3 开始,每次加 2)
    for (let a = 3; a * a <= num; a += 2) {
        while (num % a === 0) {
            ans += a + " ";
            num = num / a;
        }
    }
    
    // 如果 num 是质数且大于 2
    if (num > 2) {
        ans += num + " ";
    }
    
    console.log(ans.trim());
}();

(大脑,空空的)

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务