题解 | #质数因子#
质数因子
https://www.nowcoder.com/practice/196534628ca6490ebce2e336b47b3607
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
int num = in.nextInt();
int n = num;
for (int i = 2; i <= Math.sqrt(num) + 1; i++) {
int tmp = num % i;
int div = num / i;
if (tmp == 0) {
System.out.print(i + " ");
i = 1; // 实际上是下一次循环还从2开始,因为有i++;
num = div; // 下一次循环是对除过的数进行判断
n = div; //保存除过的数,因为有可能为最后一个质数
}
}
if (n != 1) {
System.out.print(n); //若n不等一1,那么就是本身为质数的数没有被检测到
}
// 有空循环,不推荐
// for (int i = 2; i <= num; i++) {
// while (num % i == 0) {
// num /= i;
// System.out.print(i + " ");
// }
// if (i <= num && i * i > num) {
// System.out.print(num + " ");
// break;
// }
// }
in.close();
}
}
海康威视公司福利 1334人发布