质因数分解
题目
功能:输入一个正整数,按照从小到大的顺序输出它的所有质因子(重复的也要列举)(如 180 的质因子为 2 2 3 3 5 )
数据范围: \(1 ≤ n ≤ 2×10^9+14\)
输入描述:
输入一个整数
输出描述:
按照从小到大的顺序输出它的所有质数的因子,以空格隔开。
示例1:
输入:180
输出:2 2 3 3 5
解法
循环一次与小于自身的质数相除,判断是否可以整除。可以整除获取商继续重新开始整除。
public class Solution {
public void primeFactorization(long num) {
for (long i = 2; i <= Math.sqrt(num); ++i) {
while (num % i == 0) {
System.out.print(i + " ");
num /= i;
}
}
System.out.println(num == 1 ? "": num+" ");
}
}