注解的地方是我用来判断是不是质数的。然后实际上是不需要判断的。
为什么不用判断呢。假设混入了一个合数x,说明它有2~x-1这之间的因数。但是因为是从小到大除过来的,所以不可能留着这个因数,留到现在。所以,不用判断是不是质数。从小到大一路除过来的,一定是质数。
package May14;
import java.util.Scanner;
public class Demo08 {
public String getResult(long ulDataInput) {
if(ulDataInput == 1) return "1 ";
long l = ulDataInput;
StringBuffer sb = new StringBuffer();
long i = 2L;
while (l != 1L) {
if (l % i == 0L) {
sb.append(i+" ");
l /= i;
continue;
} else {
i++;
}
}
return sb.toString();
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
long l = in.nextLong();
System.out.println(new Demo08().getResult(l));
}
}