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就好
但是为什么有个用例过不了呀。。。求指点