java如何找因子

查找因子的方法
遍历法
从1到目标数n,逐个检查是否能整除n。若能整除,则为因子。

public static List<Integer> findFactors(int n) {
List<Integer> factors = new ArrayList<>();
for (int i = 1; i <= n; i++) {
if (n % i == 0) {
factors.add(i);
}
}
return factors;
}
优化遍历法
只需遍历到√n,每次找到因子时同时记录其对应的配对因子。
public static List<Integer> findFactorsOptimized(int n) {
List<Integer> factors = new ArrayList<>();
for (int i = 1; i <= Math.sqrt(n); i++) {
if (n % i == 0) {
factors.add(i);
if (i != n / i) {
factors.add(n / i);
}
}
}
return factors;
}
注意事项
- 处理负数时需先取绝对值。
- 输入为0时需特殊处理,因所有非零数均为0的因子。






