题解 | 质数因子
质数因子
https://www.nowcoder.com/practice/196534628ca6490ebce2e336b47b3607
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int num = in.nextInt();
StringBuilder sb = new StringBuilder();
// 从2开始,如果能被整除,则直接添加到结果集中
for(int i = 2; i * i <= num; i++) { // i * i <= num 是为了优化效率,如果 num 有一个 大于 根号num的因子,那么它一定对应有一个小于根号 num 的因子。从小到大枚举,已经把小于根号 num 的因子排除干净了
while(num % i == 0) {
sb.append(i).append(" ");
num /= i;
}
}
// 如果最后 num 仍然大于 1,说明 num 本身就是一个质数
if (num > 1) {
sb.append(num);
} else{ // 否则移除最后一个空格
sb.setLength(sb.length() - 1);
}
System.out.println(sb.toString());
}
}
