题解 | 质数因子
质数因子
https://www.nowcoder.com/practice/196534628ca6490ebce2e336b47b3607
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
System.out.print(find(n));
;
}
public static StringBuilder find(int n) {
int x = n;//记录变量初始值
StringBuilder sb = new StringBuilder();
for (int i = 2; i <= Math.ceil(Math.sqrt(n)); i++) {
if (n % i == 0) { //此时i为因子
sb.append(i).append(" ");
n = n / i;
i = i - 1;//将被除数重新开始循环
}
}
//如果最后小于初始值,则n为最后因子,将其加入sb中
if (n < x && n!=1){
sb.append(n);
} else if(n==1){
}//n为1时不动作
else {
sb.append(x);//如果最后循环结束n不变,证明n无因子
}
return sb;
}
}
查看1道真题和解析