思路求解代码publicstaticvoidmain(String[]args)throwsIOException{BufferedReaderbrnewBufferedReader(newInputStreamReader(System.in));PrintWriteroutnewPrintWriter(newOutputStreamWriter(System.out));LongnLong.parseLong(br.readLine().trim());for(longi2;i*in;i){while(n%i0){out.print(i );n/i;}}if(n1){out.print(n );}out.flush();out.close();br.close();}小贴士后面那个if语句主要是处理分解后剩余的、大于√n 的质因数。如果不加这个判断会导致部分质数或大质因数无法被输出最终分解结果不完整。因为代码中外层循环的终止条件是 i * i n只检查到√n如果一个数 n 能被分解为 a × ba ≤ b则 a 必然 ≤ √nb 必然 ≥ √n。因此只需检查到√n就能找到所有小质因数剩余的未分解部分要么是 1要么是一个大于√n 的质数。