我正在尝试自动查找一个数字到另一个数字的最接近因数;
例子:
700的最接近30的因数是28(30不能整除700,但是28可以)。
一个显而易见的解决方案是获取700的所有因数并进行简单的距离计算以找到最接近30的因数,但这似乎效率低下。
另一种解决方案是找到所有基本质因数,例如:
private List<Integer> getPrimeFactors(int upTo) {
List<Integer> result = new ArrayList<>();
for (int i = 2; i <= upTo; i++) {
if (upTo % i == 0) {
result.add(i);
}
}
return result;
}
将每个数字相乘以得到所有组合,从而找到最接近的组合。
我正在尝试编写自动化程序。是否有更好的解决方案?
input % value == 0
的数字。虽然我不知道这是否更有效 :-) - Robby Cornelissen