编写一个Java程序,读取一个整数并按递增顺序显示其所有最小因子。例如,如果输入整数是120,则输出应如下:2、2、2、3、5。
时间: 2024-11-13 19:39:17 浏览: 5
JAVA基础For循环练习一.doc
在Java中,你可以编写一个程序来实现这个功能。下面是一个简单的示例,它会提示用户输入一个整数,然后找到并打印出它的所有最小因子:
```java
import java.util.ArrayList;
import java.util.List;
public class PrimeFactors {
public static void main(String[] args) {
int num;
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个整数:");
num = scanner.nextInt();
List<Integer> factors = findFactors(num);
System.out.format("该数字的所有最小因子为: %s%n", factors);
// 打印每个因子及其出现次数
for (int factor : factors) {
System.out.format("%d出现了%d次%n", factor, Collections.frequency(factors, factor));
}
}
public static List<Integer> findFactors(int number) {
List<Integer> factors = new ArrayList<>();
for (int i = 2; i <= Math.sqrt(number); i++) { // 只需检查到sqrt(number),因为大于根号的因子一定有对应小于根号的因子
while (number % i == 0) {
factors.add(i);
number /= i;
}
}
if (number > 1) { // 如果number还有剩余,说明它本身也是因子
factors.add(number);
}
return factors;
}
}
```
在这个程序中,`findFactors`函数用于查找给定数字的所有因子,并存储在一个列表中。主函数则读取用户的输入,调用`findFactors`函数,并打印结果。
阅读全文