素數因子化
素數因子分解演算法的示例實現。素數因子分解演算法將為給定數字 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 ;
}