题解 | 质数因子
质数因子
https://www.nowcoder.com/practice/196534628ca6490ebce2e336b47b3607
import java.util.*;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static List<Long> getPrimeFactors(long n){
List<Long> factors=new ArrayList<>();
if(n<2){
return factors;// 小于2的数没有质因子
}
for(long i=2;i<=Math.sqrt(n);i++){
while(n % i ==0){
factors.add(i);
n/=i;
}
}
if(n>1){
factors.add(n);// 剩下的n如果n大于1,则n是质因子
}
return factors;
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
while (in.hasNext()) { // 注意 while 处理多个 case
long n=in.nextLong();
List<Long> factorsList=getPrimeFactors(n);
for(Long factors:factorsList){
System.out.print(factors + " ");
}
}
in.close();
}
}
查看24道真题和解析