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(); double a = Math.sqrt(num); for(int i = 2; i <= a; ){ if(num % i == 0){ System.out.print(i + " "); num /= i; } else { i++; } } System.out.print(num == 1 ? "" : num + " "); } }描述
对于给定的整数 nn,从小到大依次输出它的全部质因子。即找到这样的质数 p1,p2,⋯ ,pkp1,p2,⋯,pk,使得 n=p1×p2×⋯×pkn=p1×p2×⋯×pk。
输入描述:
在一行上输入一个整数 n(2≦n≦2×109+14)n(2≦n≦2×109+14) 代表待分解的整数。
输出描述:
在一行上从小到大输出若干个整数,代表 nn 的质因子。
思路:
1.质数从2开始;
2.不存在一个整数的质数大于它的开方,所以可以先取开方作为界限值;
3.手动控制循环,自动循环会出现素数所以提前除尽,这样不存在素数;