import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); long num = scanner.nextLong(); long k = (long) Math.sqrt(num); for (long i = 2; i <= k; ++i) { while (num % i == 0) { System.out.print(i + " "); num /= i; } } System.out.println(num == 1 ? "" : num + " "); } }
- 双重循环:
外层for循环,遍历质因数
内层while循环,遍历所有该质因数
- 最后,除完所有质因数后,如果剩下一个不为1 的数,它也是一个质因数