Prime Number Check in JavaScript
Trial divide up to sqrt(n). 1 is not prime. 2 is. 9 is not.
IntermediateLoop ProgramsExample 6 of 6
prime-number-check.js
1// Prime number: divisible only by 1 and itself2// Examples: 2, 3, 5, 7, 11, 13, 17, 1934// Method 1: Basic check5function isPrime(n) {6 if (n < 2) return false;7 if (n === 2) return true;8 if (n % 2 === 0) return false;910 for (let i = 3; i < n; i += 2) {11 if (n % i === 0) return false;12 }13 return true;14}1516console.log("2:", isPrime(2));17console.log("4:", isPrime(4));18console.log("17:", isPrime(17));19console.log("20:", isPrime(20));2021// Method 2: Optimized (check up to sqrt(n))22function isPrimeOptimized(n) {23 if (n < 2) return false;24 if (n === 2) return true;25 if (n % 2 === 0) return false;2627 let sqrt = Math.sqrt(n);28 for (let i = 3; i <= sqrt; i += 2) {29 if (n % i === 0) return false;30 }31 return true;32}3334console.log("\nOptimized:");35console.log("29:", isPrimeOptimized(29));36console.log("100:", isPrimeOptimized(100));3738// Method 3: Find primes in range39function findPrimesInRange(start, end) {40 let primes = [];41 for (let i = start; i <= end; i++) {42 if (isPrimeOptimized(i)) {43 primes.push(i);44 }45 }46 return primes;47}4849console.log("\nPrimes between 10 and 30:");50console.log(findPrimesInRange(10, 30));5152// Method 4: Count prime factors53function countPrimeFactors(n) {54 let count = 0;55 let factors = [];5657 for (let i = 2; i <= n; i++) {58 while (n % i === 0) {59 count++;60 factors.push(i);61 n /= i;62 }63 }6465 return { count, factors };66}6768console.log("\nPrime factors of 60:");69console.log(countPrimeFactors(60));
Output
2: true
4: false
17: true
20: false
Optimized:
29: true
100: false
Primes between 10 and 30:
[ 11, 13, 17, 19, 23, 29 ]
Prime factors of 60:
{ count: 4, factors: [ 2, 2, 3, 5 ] }What's going on
Loop to Math.sqrt(n). Stop at n-1 and you waste time. Skip 2's special case and even numbers all look composite except you forgot 2 is prime.
1 is not prime. People argue. Math already settled it.