题解 | #质数因子#
质数因子
https://www.nowcoder.com/practice/196534628ca6490ebce2e336b47b3607
import java.util.*; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); // 注意 hasNext 和 hasNextLine 的区别 while (in.hasNextInt()) { // 注意 while 处理多个 case int n=in.nextInt(); StringBuilder sb=new StringBuilder(); int b=n; int flag=0; for(int i=2;i*i<=b;i++)//遍历到n会超时,所以用算数平方根提高效率 { while(n%i==0) { sb.append(i); sb.append(" "); n=n/i; flag++; } if(n==1) break; //当n为1时,跳出循环 } if(n!=1) //有可能被前面的小质数因子除了后,成了一个质数,需要把这个数加上后期打印 sb.append(n).append(" "); if(flag==0) System.out.print(b); else System.out.print(sb.substring(0,sb.length()-1)); } } }