题解 | #质数因子#

质数因子

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

const rl = require("readline").createInterface({ input: process.stdin });
const iter = rl[Symbol.asyncIterator]();

void async function () {
    let x1 = '';
    x1 = (await iter.next()).value ?? '';
    rl.close();
    x1 = parseInt(x1)
    let zss = []
    let xp2 = Math.sqrt(x1)
    for (let i = 2; i <= xp2; i++) {
        let noz = x1 % i === 0
        if (noz) {
            x1 = x1 / i
            zss.push(i)
            i--
        }
    }
    if (x1 !== 1) zss.push(x1)
    if (zss.length > 0)
        console.log(zss.toString().replace(/,/g, ' '));
    else
        console.log(x1);
}()
  1. 质因数(素因数或质因子)在数论里是指能整除给定正整数的质数
  2. 质因子的计算可以使用试除法来判断
  3. 试除到数的平方根就可以
  4. 【易错】一个数的平方根有可能也是质数,比如25,这一点很容易被忽略
  5. 【易错】试错的过程中若采用的是for循环递增式试除,很容易漏掉被除掉后的结果,被除掉后的结果也可能是质数
  6. 【易错】将数组转化为字符串时,replace方法记得最好使用正则表达式的g标签,以全局替换
  7. 【易错】如果数字本身就是质数,那么不要忘记它自身就是他的质因子,不要忘记输出
全部评论

相关推荐

点赞 评论 收藏
分享
缒梦&独舞:这家公司是这样的,去年给我实习offer了,不过也是面着玩儿的,他周六还要去做公益志愿活动
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务