bilibili哔哩哔哩校招笔试编程题 求因数最小和
这样写为啥不对呢 有一个用例死活过不了 质数也排除了
public class Test{
public static void main(String args[]){
long num1;
long num2;
List<Long> sumList=new ArrayList<>();
Scanner input=new Scanner(System.in);
long n;
n=input.nextInt();
for(int i=1;i<n;i++){
if(n%i==0){
num1=i;
num2=n/i;
sumList.add(num1+num2);
}
}
Collections.sort(sumList);
if(sumList.size()==1){
System.out.println(sumList.get(0)-1);
}else{
System.out.println(sumList.get(0));
}
}
} 先用循环求了因数 然后用一个list存入每一对因数的和 然后从小到大排序 输出第一个元素 质数的话 如果list只有一个元素 说明只有1和它本身的和 输出第一个元素减去1就好
但是为什么有个用例过不了呀。。。求指点
