题目描述:
功能:输入一个正整数,按照从小到大的顺序输出它的所有质数的因子(如180的质数因子为2 2 3 3 5 )

最后一个数后面也要有空格
思路启发:
根据表达式 2*2*3*3*5=180 ,我们可以想到 180/2=90=2*3*3*5 ,同样 90/2=45=3*3*5 ,直至 5/5=1。可以想到设置一个候选数pom=2开始被正整数180除,若能整除则记录,正整数转成180整除pom的得数;否则pom++,寻找下一个整除正整数的候选数。一直循环直至剩余的正整数小于pom。
import java.util.Scanner;
public class Main{
    public static void main(String[] args){
        Scanner input = new Scanner(System.in);
        while(input.hasNextLong()){
            long num = input.nextLong();
            System.out.println(getResult(num));
        }
    }
    
    public static String getResult(long ulDataInput){
        int pom = 2;
        StringBuilder output = new StringBuilder();
        while(ulDataInput >= pom){
            if (ulDataInput % pom == 0){
                ulDataInput /= pom;
                output.append(pom).append(" ");
            }
            else pom++;
        }
        return output.toString();
    }
}