Skip to content

Commit 19c71dc

Browse files
authored
Create 2521-distinct-prime-factors-of-product-of-array.js
1 parent db1c052 commit 19c71dc

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
/**
2+
* @param {number[]} nums
3+
* @return {number}
4+
*/
5+
var distinctPrimeFactors = function(nums) {
6+
const primes = getPrime(1000)
7+
const ans = new Set()
8+
nums.forEach(it => {
9+
let cur = it
10+
ans.add(primes[cur])
11+
while (primes[cur] != 1) {
12+
ans.add(primes[cur])
13+
cur /= primes[cur]
14+
}
15+
ans.add(cur)
16+
})
17+
ans.delete(1)
18+
19+
return ans.size
20+
21+
function getPrime(k) {
22+
const minPrime = new Array(k + 1).fill(1)
23+
let p = 2
24+
while (p <= k) {
25+
let i = p
26+
while (p <= k / i) {
27+
if (minPrime[i * p] == 1) {
28+
minPrime[i * p] = p
29+
}
30+
i++
31+
}
32+
p++
33+
while (p <= k) {
34+
if (minPrime[p] == 1) break
35+
p++
36+
}
37+
}
38+
return minPrime
39+
}
40+
};

0 commit comments

Comments
 (0)