题解 | #质数因子#
质数因子
https://www.nowcoder.com/practice/196534628ca6490ebce2e336b47b3607
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(); //其实不用遍历到num,只要遍历到平方根,因为,num在循环中逐步缩小,所以 long sqrt_num = (long) Math.sqrt(num); //对于每个i都进行while循环看是不是因数,因为while循环会一直直到不能整除,所以找出的因子全部都是质因数 for (long i = 2; i <= sqrt_num; ++i) { while (num % i == 0) { System.out.print(i + " "); num /= i; } } //最后再输出那个不能整除的最大的且不为1的质因数 System.out.println(num == 1 ? "" : num); } }