java如何算因数
Java 计算因数的方法
因数定义
因数是能整除给定整数的数,例如 6 的因数为 1, 2, 3, 6。
方法一:暴力遍历法
通过循环从 1 到目标数,逐一检查是否能整除。
public static void printFactors(int num) {
if (num <= 0) {
System.out.println("请输入正整数");
return;
}
for (int i = 1; i <= num; i++) {
if (num % i == 0) {
System.out.print(i + " ");
}
}
}
优化点
循环范围可缩小至 Math.sqrt(num),成对收集因数以减少迭代次数。
方法二:优化遍历法
利用因数的对称性,只需遍历到平方根即可。
public static void printFactorsOptimized(int num) {
if (num <= 0) {
System.out.println("请输入正整数");
return;
}
for (int i = 1; i <= Math.sqrt(num); i++) {
if (num % i == 0) {
System.out.print(i + " ");
if (i != num / i) {
System.out.print(num / i + " ");
}
}
}
}
方法三:使用集合存储结果
通过 TreeSet 自动排序并去重,适用于需要有序输出的场景。
public static void printFactorsWithSet(int num) {
TreeSet<Integer> factors = new TreeSet<>();
for (int i = 1; i <= Math.sqrt(num); i++) {
if (num % i == 0) {
factors.add(i);
factors.add(num / i);
}
}
System.out.println(factors);
}
注意事项

- 输入验证:确保处理非正整数的情况。
- 性能考虑:大数运算时优先选择优化方法。






