HJ6 质数因子

256 阅读1分钟

Problem: HJ6 质数因子

题目描述

描述

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

输入描述:

输入一个整数

输出描述:

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

示例1

输入:180
输出:2 2 3 3 5

算法流程

  1. 定义一个空数组 factors,用于存储质因子。
  2. 使用一个循环从 2 开始遍历到输入的正整数 num
  3. 在循环中,判断 num 是否能被当前的数整除,如果可以整除,则将该数作为质因子,并将其添加到 factors 数组中。
  4. num 更新为 num 除以当前的数,继续判断是否能被当前的数整除,直到不能整除为止。
  5. 最后,如果 num 大于 1,则将其作为质因子,并添加到 factors 数组中。
  6. 输出 factors 数组中的元素,即为按照从小到大的顺序输出的所有质因子。

代码

function getPrimeFactors(num) {
  let factors = [];
  for (let i = 2; i <= num; i++) {
    while (num % i === 0) {
      factors.push(i);
      num /= i;
    }
  }
  return factors;
}