算法:质因数分解(JS)
质因数分解
输入一个大于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 的正整数"。
- 初始化一个空数组 result,用于存储质因数。
- 使用一个 for 循环遍历从 2 到 num 的所有整数。
- 在循环中,使用一个 while 循环,当 num 可以被 i 整除时,将 i 添加到结果数组中。然后将 num 除以 i,以便在下一个循环迭代中检查下一个质因数。
- 循环结束后,使用 join 方法将结果数组中的所有质因数连接成一个字符串,用 * 符号分隔。
接下来,代码测试了 PrimeFactor 函数,分别输入 12、14、20 和 100,并打印分解后的质因数。
例如,输入 12,函数将返回 "223",因为 12 的质因数是 2、2 和 3。同样,输入 14 将返回 "27",输入 20 将返回 "225",输入 100 将返回 "2255"。