题解 | #质数因子#
质数因子
https://www.nowcoder.com/practice/196534628ca6490ebce2e336b47b3607
const rl = require("readline").createInterface({ input: process.stdin });
const iter = rl[Symbol.asyncIterator]();
void async function () {
let x1 = '';
x1 = (await iter.next()).value ?? '';
rl.close();
x1 = parseInt(x1)
let zss = []
let xp2 = Math.sqrt(x1)
for (let i = 2; i <= xp2; i++) {
let noz = x1 % i === 0
if (noz) {
x1 = x1 / i
zss.push(i)
i--
}
}
if (x1 !== 1) zss.push(x1)
if (zss.length > 0)
console.log(zss.toString().replace(/,/g, ' '));
else
console.log(x1);
}()
- 质因数(素因数或质因子)在数论里是指能整除给定正整数的质数。
- 质因子的计算可以使用试除法来判断
- 试除到数的平方根就可以
- 【易错】一个数的平方根有可能也是质数,比如25,这一点很容易被忽略
- 【易错】试错的过程中若采用的是for循环递增式试除,很容易漏掉被除掉后的结果,被除掉后的结果也可能是质数
- 【易错】将数组转化为字符串时,replace方法记得最好使用正则表达式的g标签,以全局替换
- 【易错】如果数字本身就是质数,那么不要忘记它自身就是他的质因子,不要忘记输出
SHEIN希音公司福利 325人发布