美文网首页
HJ6 质数因子 2022-03-12 周六

HJ6 质数因子 2022-03-12 周六

作者: 勇往直前888 | 来源:发表于2022-03-15 10:58 被阅读0次

    题目

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

    • 输入描述:
      输入一个整数

    • 输出描述:
      按照从小到大的顺序输出它的所有质数的因子,以空格隔开。

    • 示例1
      输入:180
      输出:2 2 3 3 5

    • 题解链接

    思路

    • 从2开始枚举,只要整除就放入数组;

    • 找到一个质数,就做除法,把这个数逐渐缩小;

    以上两步相当于把质因素从数字中移到了数组中;
    从2开始,每次+1开始试,最小能整除的必然是质数;(这个要脑补一下)
    i * i <= num 这个退出条件要脑补一下

    // 输入字符串转数字
    let num = parseInt(readline());
    
    let arr = [] // 结果数组
    
    // 主要是要明确指数因子的范围
    // 小于等于本身,小于等于本身的开方
    let i = 2;
    while(i <= num && i * i <= num) { // 没有这个判断超时 i * i <= num
        // 每次都从2开始枚举
        if (num % i === 0) {
            arr.push(i)
            num /= i
            i = 2   
        } else {
            i++
        }
    }
    
    // 最后一个数
    if (num != 1) {
        arr.push(num)
    }    
    
    // 数组转字符串输入,用空格隔开
    console.log(arr.join(' '))
    
    
    

    相关文章

      网友评论

          本文标题:HJ6 质数因子 2022-03-12 周六

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