美文网首页
算法题:输入一个正整数,按照从小到大的顺序输出它的所有质因子

算法题:输入一个正整数,按照从小到大的顺序输出它的所有质因子

作者: 离陌夕 | 来源:发表于2021-03-14 11:48 被阅读0次

    凌晨刷题,这个题做了好几遍,一直提示运行超时,最后看了下分享的其他语言代码,终于解决了。

    题目描述

    功能:输入一个正整数,按照从小到大的顺序输出它的所有质因子(重复的也要列举)(如180的质因子为2 2 3 3 5 )

    最后一个数后面也要有空格

    输入描述:

    输入一个long型整数

    输出描述:

    按照从小到大的顺序输出它的所有质数的因子,以空格隔开。最后一个数后面也要有空格。
    示例1

    输入

    180

    输出

    2 2 3 3 5

    解答:

    let str = Number(readline()); // 牛客网用于读取输入的一行内容的方法
    while(str) {
    let arr = [];
    let max = Math.sqrt(str); // 注意这个,不然会出现超时
    for (let i = 2; i <= str && i <= max;) {
    if(str % i === 0) {
    arr.push(i);
    str = str / i;
    } else {
    i++
    }
    }
    if (str !== 1) { // 注意这个
    arr.push(str);
    }
    console.log(arr.join(" ") + " ");
    str = Number(readline());
    }
    牛客网https://ac.nowcoder.com/acm/contest/320#question这个里面的题我已经刷完了。

    image.png

    相关文章

      网友评论

          本文标题:算法题:输入一个正整数,按照从小到大的顺序输出它的所有质因子

          本文链接:https://www.haomeiwen.com/subject/opjqcltx.html