用java设计一个方法factor(),将num因式分解,并将其因子封装到列表集合后返回 例如输入45,返回[3,3,5],因为45=3*3*5
时间: 2024-05-11 19:18:23 浏览: 67
好的,以下是一个可能的实现:
```java
import java.util.ArrayList;
import java.util.List;
public class Factorizer {
public static List<Integer> factor(int num) {
List<Integer> factors = new ArrayList<>();
// 从2开始尝试除
int factor = 2;
while (num > 1) {
if (num % factor == 0) {
// 如果当前因子可以整除num,就将其加入列表中
factors.add(factor);
num /= factor;
} else {
// 否则尝试下一个因子
factor++;
}
}
return factors;
}
public static void main(String[] args) {
int num = 45;
List<Integer> factors = factor(num);
System.out.printf("%d的因子为:%s\n", num, factors);
}
}
```
在这个实现中,我们首先从2开始尝试将num除尽,如果当前因子可以整除num,就将其加入列表中,并将num除以该因子;否则尝试下一个因子。由于每次除以因子后num一定会减小,所以这个过程一定会在最后得到1,此时所有因子已经被找到并加入了列表中。最终将列表返回即可。
上述代码的输出结果为:
```
45的因子为:[3, 3, 5]
```
阅读全文