算法:质因数分解(JS)

发布时间 2023-10-07 17:00:17作者: 安知竹墨
质因数分解
输入一个大于1的正整数,分解出所有成质因数,并以相乘的方式打印
    提示1:说a是b的质因数,即a是指数且a是b的因数,例如;2是12的质因数,3是12的质因数,但4不是12的质因数。
    提示2:如果输入13,应该打印 12=2*2*3。
 1 // PrimeFactor 函数用于将一个正整数分解为其质因数的乘积  
 2 function PrimeFactor(num) {  
 3    // 如果输入的数字小于等于 1,返回错误提示  
 4    if (num <= 1) {  
 5        return "输入错误,请输入大于 1 的正整数";  
 6    }  
 7    // 初始化一个空数组用于存储质因数  
 8    let result = [];  
 9    // 使用一个 for 循环遍历从 2 到 num 的所有整数  
10    for (let i = 2; i <= num; i++) {  
11        // 使用一个 while 循环,当 num 可以被 i 整除时,将 i 添加到结果数组中  
12        while (num % i === 0) {  
13            result.push(i);  
14            // 将 num 除以 i,以便在下一个循环迭代中检查下一个质因数  
15            num /= i;  
16        }  
17    }  
18    // 使用 join 方法将结果数组中的所有质因数连接成一个字符串,用 * 符号分隔  
19    return result.join("*");  
20 }
21 
22 // 测试 PrimeFactor 函数,分别输入 12、14、20 和 100,打印分解后的质因数  
23 console.log(PrimeFactor(12)); // 输出:2*2*3  
24 console.log(PrimeFactor(14)); // 输出:2*7  
25 console.log(PrimeFactor(20)); // 输出:2*2*5  
26 console.log(PrimeFactor(100)); // 输出:2*2*5*5  

代码解释:

以上代码定义了一个名为 PrimeFactor 的 JavaScript 函数,用于将一个正整数分解为其质因数的乘积。质因数是指能够整除该数且为质数的因数。

函数 PrimeFactor 的实现步骤如下:

  1. 首先,检查输入的数字是否小于等于 1,如果是,则返回错误提示 "输入错误,请输入大于 1 的正整数"。
  2. 初始化一个空数组 result,用于存储质因数。
  3. 使用一个 for 循环遍历从 2 到 num 的所有整数。
  4. 在循环中,使用一个 while 循环,当 num 可以被 i 整除时,将 i 添加到结果数组中。然后将 num 除以 i,以便在下一个循环迭代中检查下一个质因数。
  5. 循环结束后,使用 join 方法将结果数组中的所有质因数连接成一个字符串,用 * 符号分隔。

接下来,代码测试了 PrimeFactor 函数,分别输入 12、14、20 和 100,并打印分解后的质因数。

例如,输入 12,函数将返回 "223",因为 12 的质因数是 2、2 和 3。同样,输入 14 将返回 "27",输入 20 将返回 "225",输入 100 将返回 "2255"。