【发布时间】:2016-09-24 21:57:58
【问题描述】:
这是寻找素因数的典型代码:
public static List<Integer> primeFactors(int numbers) {
int n = numbers;
List<Integer> factors = new ArrayList<Integer>();
for (int i = 2; i <= n / i; i++) {
while (n % i == 0) {
factors.add(i);
n /= i;
}
}
if (n > 1) {
factors.add(n);
}
return factors;
}
我的问题是,我们为什么不在将 i 添加到列表之前检查它是否为素数?
【问题讨论】:
-
因为任何相加的数都是素数,这由 for 和 while 循环来保证。
-
你能解释一下吗?
标签: java math primes prime-factoring