将一个整数分解为若干质因数之乘积
样例
给出 10, 返回 [2, 5].
给出 660, 返回 [2, 2, 3, 5, 11].
注意事项
你需要从小到大排列质因子。
解题思路:
i从2 开始算起 当i ^ 2超过n时 就不需要再考虑后面的数
只要n % i == 0 可以整除 就一直while循环 直至终止 该过程中 不断缩小n 并将结果加入到res中
最后不要忘记最终得到的结果 (if num>1) 也加入进去
public class Solution {
/**
* @param num: An integer
* @return: an integer array
*/
public List<Integer> primeFactorization(int num) {
// write your code here
List<Integer> res=new ArrayList<>();
if(num<2) {return res;}
for(int i=2;i*i<=num;i++) {
while(num%i==0) {
res.add(i);
num/=i;
}
}
if(num != 1)
res.add(num);
return res;
}
}
本文介绍了一种将整数分解为其质因数之乘积的算法,通过从小到大的质数依次尝试,利用while循环进行整除,直至所有质因数被找到。文章详细解释了算法的实现过程,并提供了代码示例。
1321

被折叠的 条评论
为什么被折叠?



