ArrayList中的最小因子

时间:2019-02-26 13:57:15

标签: java arraylist

我正在开发一个程序,该程序需要用户输入,然后打印因素列表。

我对如何打印列表中最小的因素感到困惑。

有什么建议吗?

public static void main(String [] args){

    Scanner input = new Scanner(System.in);

    System.out.print("Enter integer: ");
    long num = input.nextLong();

    ArrayList<Long> list1 = new ArrayList<>(), list2 = new ArrayList<>();



    for(long i = 1; i <= Math.sqrt(num); i++) {
        if(num % i == 0) {
            list1.add(i);
            if(i != num/i) {
                list2.add(num/i);
            }
        }
    }

    int n1 = list1.size() - 1;
    int n2 = list2.size() - 1;

    for(int i = 0; i <= n1; i++) {
        System.out.println(list1.get(i));
    }

    for(int i = n2; i >= 0; i--) {
        System.out.println(list2.get(i));

    }

1 个答案:

答案 0 :(得分:0)

根据您当前的代码,您可能想实现某种搜索功能来运行阵列列表。对于初学者,您可以使用基本的线性搜索(一次检查一项)。

您需要一个位置来存储当前的最小因子(int currSmallest)。然后,您将创建一个for循环以遍历每个项目(已完成打印所有项目的工作),但如果检查的是小于currSmallest的项目,则将currSmallest替换为新因素。

如果您想要代码,我可以为您编写代码,但是我认为您了解所有必要的组件。