HJ6 质数因子
答案:
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 1 注意题目给的数据范围,定数据类型
int num = in.nextInt();
// 2 一个数的最大因子其实是它的平方根,比如100的最大因子是10,所以不用从2循环到100
double k = Math.sqrt(num);
// 所以num的因子就在2到k之间
for (int i = 2; i <= k; i++) {
// 3 只要num能被i整除,那么i就是其中一个因子,然后继续整除,直到不能整除时结束
while (num % i == 0) {
System.out.print(i + " ");
num = num / i;
}
}
// 4 不能整除的数,它就是最后的一个因子了。当然排除1的特殊情况,1没有质数因子,因为质数本身就大于1
System.out.println(num == 1 ? "" : num);
}
}