Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit edf3f5e

Browse files
authored
Create 2523-closest-prime-numbers-in-range.js
Add Solution for closest-prime-numbers-in-range
1 parent 3a66f08 commit edf3f5e

File tree

1 file changed

+51
-0
lines changed

1 file changed

+51
-0
lines changed
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
/**
2+
* Sieve Algorithm
3+
* Time O(n*log(log(n))) | Space O(n)
4+
* https://leetcode.com/problems/closest-prime-numbers-in-range
5+
* @param {number} left
6+
* @param {number} right
7+
* @return {number[]}
8+
*/
9+
var closestPrimes = function(left, right) {
10+
11+
const isNotPrime = {
12+
1: true // 1 is not prime number.
13+
};
14+
15+
for (let i = 2; i < right+1; i++) {
16+
if (!isNotPrime[i]) {
17+
let factor = 2;
18+
while (i*factor <= right) {
19+
isNotPrime[i*factor] = true;
20+
factor++;
21+
}
22+
}
23+
}
24+
25+
const primesInOrder = [];
26+
27+
while (left < right+1) {
28+
if (!isNotPrime[left]) {
29+
primesInOrder.push(left);
30+
}
31+
left++;
32+
}
33+
34+
let minDistance = Infinity;
35+
const ans = [];
36+
37+
for (let i = 1; i < primesInOrder.length; i++) {
38+
39+
const prime1 = primesInOrder[i];
40+
const prime0 = primesInOrder[i-1];
41+
42+
if (prime1 - prime0 < minDistance) {
43+
minDistance = prime1-prime0;
44+
ans[0] = prime0;
45+
ans[1] = prime1;
46+
}
47+
}
48+
49+
if (!ans.length) return [-1, -1];
50+
return ans;
51+
};

0 commit comments

Comments
 (0)