题解 | #质数因子#
质数因子
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));
}
}
}

查看28道真题和解析