
思路

求解代码
|
|
小贴士
后面那个if语句主要是处理分解后剩余的、大于√n 的质因数。
如果不加这个判断,会导致部分质数或大质因数无法被输出,最终分解结果不完整。
因为代码中外层循环的终止条件是 i * i <= n,只检查到√n,
如果一个数 n 能被分解为 a × b(a ≤ b),则 a 必然 ≤ √n,b 必然 ≥ √n。
因此只需检查到√n,就能找到所有小质因数,剩余的未分解部分要么是 1,要么是一个大于√n 的质数。


|
|
后面那个if语句主要是处理分解后剩余的、大于√n 的质因数。
如果不加这个判断,会导致部分质数或大质因数无法被输出,最终分解结果不完整。
因为代码中外层循环的终止条件是 i * i <= n,只检查到√n,
如果一个数 n 能被分解为 a × b(a ≤ b),则 a 必然 ≤ √n,b 必然 ≥ √n。
因此只需检查到√n,就能找到所有小质因数,剩余的未分解部分要么是 1,要么是一个大于√n 的质数。