思路:
用了一种叫做质因数分解的算法。它遍历数组中的每个数,然后对每个数进行质因数分解。最后,它使用一个 HashSet 来记录所有质因数,并打印出 HashSet 中不同质因数的数目。
题解:
class Solution {
public int distinctPrimeFactors(int[] nums) {
Set<Integer> set = new HashSet<>();
for (int num : nums) {
int n = 2;
while (n <= num) {
if (num % n == 0) {
set.add(n);
num = num / n;
} else {
n++;
}
}
}
return set.size();
}
}