JavaScript
// Prime number: divisible only by 1 and itself
// Examples: 2, 3, 5, 7, 11, 13, 17, 19
// Method 1: Basic check
function isPrime(n) {
if (n < 2) return false;
if (n === 2) return true;
if (n % 2 === 0) return false;
for (let i = 3; i < n; i += 2) {
if (n % i === 0) return false;
}
return true;
}
console.log("2:", isPrime(2));
console.log("4:", isPrime(4));
console.log("17:", isPrime(17));
console.log("20:", isPrime(20));
// Method 2: Optimized (check up to sqrt(n))
function isPrimeOptimized(n) {
if (n < 2) return false;
if (n === 2) return true;
if (n % 2 === 0) return false;
let sqrt = Math.sqrt(n);
for (let i = 3; i <= sqrt; i += 2) {
if (n % i === 0) return false;
}
return true;
}
console.log("\nOptimized:");
console.log("29:", isPrimeOptimized(29));
console.log("100:", isPrimeOptimized(100));
// Method 3: Find primes in range
function findPrimesInRange(start, end) {
let primes = [];
for (let i = start; i <= end; i++) {
if (isPrimeOptimized(i)) {
primes.push(i);
}
}
return primes;
}
console.log("\nPrimes between 10 and 30:");
console.log(findPrimesInRange(10, 30));
// Method 4: Count prime factors
function countPrimeFactors(n) {
let count = 0;
let factors = [];
for (let i = 2; i <= n; i++) {
while (n % i === 0) {
count++;
factors.push(i);
n /= i;
}
}
return { count, factors };
}
console.log("\nPrime factors of 60:");
console.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 ] }This program demonstrates prime number checking and related operations.
Prime Number Definition
A prime number is:
- Greater than 1
- Divisible only by 1 and itself
- Examples: 2, 3, 5, 7, 11, 13, 17, 19, 23
Special Cases:
- 0 and 1: Not prime
- 2: Only even prime number
- All other primes: Odd numbers
Method 1: Basic Check
Check divisibility up to n-1:
javascriptfor (let i = 3; i < n; i += 2) { if (n % i === 0) return false; }
Optimizations:
- Skip even numbers (except 2)
- Start from 3, increment by 2
Method 2: Optimized (Square Root)
Only check up to √n:
javascriptlet sqrt = Math.sqrt(n); for (let i = 3; i <= sqrt; i += 2) { if (n % i === 0) return false; }
Why √n?
If n has a factor > √n, it must have a corresponding factor < √n. Example: 100 = 10 × 10, factors: 2, 4, 5, 10, 20, 25, 50
Time Complexity:
- Basic: O(n)
- Optimized: O(√n) - Much faster!
Method 3: Find Primes in Range
Use prime check function:
javascriptfor (let i = start; i <= end; i++) { if (isPrimeOptimized(i)) { primes.push(i); } }
Method 4: Prime Factorization
Find all prime factors:
javascriptfor (let i = 2; i <= n; i++) { while (n % i === 0) { factors.push(i); n /= i; } }
Example: 60
- 60 ÷ 2 = 30 → factor: 2
- 30 ÷ 2 = 15 → factor: 2
- 15 ÷ 3 = 5 → factor: 3
- 5 ÷ 5 = 1 → factor: 5
- Result: 2² × 3 × 5
When to Use:
-
Basic: Learning, small numbers
-
Optimized: Production code, efficiency
-
Range: Finding multiple primes