73 字 少于 1 分钟阅读

题目

功能:输入一个正整数,按照从小到大的顺序输出它的所有质因子(重复的也要列举)(如 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+" ");
    }

}