import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException; public class Main{ public static void main(String[] args){ long number = 0L; String str = null; /* 使用 try-with-resources 方式开启控制台输入流,并捕捉处理异常 * try() 中只有一个或最后一个流,可以不加分号作为语句结束 */ try(BufferedReader br = new BufferedReader(new InputStreamReader(System.in))){ /*循环读取输入流,获取行字符串 **/ while((str = br.readLine()) != null){ // 把读取的字符串转换成 long 型整数 number = Long.parseLong(str); //如果一个整数为合数,则其任何质数因子都小于或等于其平方根 for(int i = 2; i <= Math.sqrt(number); i++){ //判断是否连续被同一个质数整除 while (number % i == 0) { number /= i; System.out.print(i + " "); } } //经过前面的计算,如果 number 依然大于 1,则 number 本身就是质数 if (number > 1) System.out.print(number + " "); } } catch ( IOException e ){ e.printStackTrace(); } } }