素数因子化
素数因子分解算法的示例实现。素数因子分解算法将为给定数字 n
找到一个素数列表,这样如果你乘以那些素数就得到 n
。以下实现将 -1
添加到 n < 0
的素数因子列表中。请注意,0
不存在素数因子分解,因此下面的方法返回一个空列表。
List<Integer> primeFactors(int n) {
List<Integer> factors = new ArrayList<>();
if (n < 0) {
factors.add(-1);
n *= -1;
}
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 ;
}