Skip to content

Commit 1d07704

Browse files
authored
Create getPrimeNumbers.js
1 parent 92c3287 commit 1d07704

File tree

1 file changed

+92
-0
lines changed

1 file changed

+92
-0
lines changed

getPrimeNumbers.js

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
/**
2+
*
3+
* Get prime numbers (all or till some number)
4+
* https://youtu.be/s8zUK5jmXA4
5+
*/
6+
// O(n2)
7+
const isPrimeNumber = (num) => {
8+
for (let i = 2, max = Math.sqrt(num); i <= max; i++) {
9+
if (num % i === 0) {
10+
return false;
11+
}
12+
}
13+
return num > 1;
14+
}
15+
16+
const getPrimeNumbers = (limit) => {
17+
const numbers = [];
18+
19+
for (let i = 2; i <= limit; i++) {
20+
if (isPrimeNumber(i)) {
21+
numbers.push(i);
22+
}
23+
}
24+
25+
return numbers;
26+
}
27+
28+
//const isPrimeNumber = (num) => {
29+
for (let i = 2, max = Math.sqrt(num); i <= max; i++) {
30+
if (num % i === 0) {
31+
return false;
32+
}
33+
}
34+
return num > 1;
35+
}
36+
37+
const getPrimeNumbers = (limit) => {
38+
const numbers = [];
39+
40+
for (let i = 2; i <= limit; i++) {
41+
if (isPrimeNumber(i)) {
42+
numbers.push(i);
43+
}
44+
}
45+
46+
return numbers;
47+
}
48+
49+
// isPrimeNumbers(200);
50+
// [ 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199 ]
51+
52+
const getPrimeNumbers2 = (limit) => {
53+
const temp = [];
54+
const numbers = [];
55+
56+
for (let i=2; i < limit; i++) {
57+
if (!temp[i]) {
58+
numbers.push(i);
59+
60+
for (let j = i * 2; j <= limit; j += i) {
61+
temp[j] = true;
62+
}
63+
}
64+
}
65+
66+
return numbers;
67+
}
68+
69+
getPrimeNumbers2(200)
70+
71+
72+
// O(loglogn)
73+
// "sieve of Eratosthenes"
74+
const getPrimeNumbers2 = (limit) => {
75+
const temp = [];
76+
const numbers = [];
77+
78+
for (let i=2; i < limit; i++) {
79+
if (!temp[i]) {
80+
numbers.push(i);
81+
82+
for (let j = i * 2; j <= limit; j += i) {
83+
temp[j] = true;
84+
}
85+
}
86+
}
87+
88+
return numbers;
89+
}
90+
91+
//getPrimeNumbers2(200)
92+
//[ 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199 ]

0 commit comments

Comments
 (0)