我正在开发一个程序,该程序需要用户输入,然后打印因素列表。
我对如何打印列表中最小的因素感到困惑。
有什么建议吗?
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));
}
答案 0 :(得分:0)
根据您当前的代码,您可能想实现某种搜索功能来运行阵列列表。对于初学者,您可以使用基本的线性搜索(一次检查一项)。
您需要一个位置来存储当前的最小因子(int currSmallest
)。然后,您将创建一个for循环以遍历每个项目(已完成打印所有项目的工作),但如果检查的是小于currSmallest
的项目,则将currSmallest
替换为新因素。
如果您想要代码,我可以为您编写代码,但是我认为您了解所有必要的组件。