In this post I will be sharing JavaScript code to generate prime numbers,
First, we check if a given number is a prime
When checking if a number num is prime, we only check for factors up to the square root of num. If num has any factors larger than its square root, it must have already been a smaller factor—because factors come in pairs. For example, if 100 = 4 × 25, once you find 4 (which is less than 10 i.e. √100), you’ve already covered the pair (4, 25).
// Check if the given number is a prime number.
function isPrimeNumber(num) {
if (num < 2) return false;
const limit = Math.sqrt(num);
for (let i = 2; i <= limit; i++) {
if (num % i === 0) return false;
}
return true;
}
console.log(isPrimeNumber(37)); // true
console.log(isPrimeNumber(100)); // falseCode language: JavaScript (javascript)Now we can generate required prime numbers
// Check if the given number is a prime number.
function isPrimeNumber(num) {
if (num < 2) return false;
const limit = Math.sqrt(num);
for (let i = 2; i <= limit; i++) {
if (num % i === 0) return false;
}
return true;
}
// Generate prime numbers from 1 to N.
function getPrimesUpTo(upto) {
if (upto < 2) return [];
const result = [];
for (let i = 2; i <= upto; i++) {
const isPrime = isPrimeNumber(i);
if (isPrime) result.push(i);
}
return result;
}
console.log(getPrimesUpTo(1));
// []
console.log(getPrimesUpTo(10));
//[2,3,5,7]
console.log(getPrimesUpTo(30));
// [2,3,5,7,11,13,17,19,23,29]
// Generate N prime numbers.
function getNPrimes(limit) {
if (limit <= 0 || typeof limit !== "number") {
return [];
}
let i = 2;
const result = [];
let limitReached = false;
while (result.length < limit) {
const isPrime = isPrimeNumber(i);
if (isPrime) result.push(i);
i++;
}
return result;
}
console.log(getNPrimes("10"));
// []
console.log(getNPrimes(0));
// []
console.log(getNPrimes(4));
// [2,3,5,7]
console.log(getNPrimes(10));
// [2,3,5,7,11,13,17,19,23,29]Code language: JavaScript (javascript)Using a generator function
// Prime number generator function
function* generatePrime() {
let num = 2;
while (true) {
let isPrime = true;
const limit = Math.sqrt(num);
for (let i = 2; i <= limit; i++) {
if (num % i === 0) isPrime = false;
}
if (isPrime) yield num;
num++;
}
}
const primeGenerator = generatePrime();
console.log(primeGenerator.next().value); // 2
console.log(primeGenerator.next().value); // 3
console.log(primeGenerator.next().value); // 5Code language: JavaScript (javascript)Related posts
- Is a prime number check in JavaScript
- Generate prime numbers from 1 to N in JavaScript
- Generate N prime numbers in JavaScript
- Prime number generator function in JavaScript
