Finding the k-prime numbers with a specific distance in a range in JavaScript

K-Prime Numbers

A natural number is called k-prime if it has exactly k prime factors, counted with multiplicity.

For example, 4 is a 2-prime number because 4 = 2 × 2, and both instances of 2 are counted separately. Similarly, 8 is a 3-prime number because 8 = 2 × 2 × 2, giving us three prime factors.

Problem

We need to write a JavaScript function that takes a number k, a distance, and a range. The function should return an array of pairs containing k-prime numbers within the range where the distance between them equals the specified step.

Understanding Prime Factor Counting

The key is counting prime factors with multiplicity. Here's how different numbers are classified:

// Helper function to count prime factors
function countPrimeFactors(n) {
    let count = 0;
    let i = 2;
    
    while (i * i  1) count++;
    return count;
}

// Examples of k-prime classification
console.log("4 has", countPrimeFactors(4), "prime factors (2-prime)");
console.log("6 has", countPrimeFactors(6), "prime factors (2-prime)"); 
console.log("8 has", countPrimeFactors(8), "prime factors (3-prime)");
console.log("12 has", countPrimeFactors(12), "prime factors (3-prime)");
4 has 2 prime factors (2-prime)
6 has 2 prime factors (2-prime)
8 has 3 prime factors (3-prime)
12 has 3 prime factors (3-prime)

Complete Solution

const kPrimeSteps = (k = 1, step = 1, [start, end]) => {
    const result = [];
    
    const countPrimeFactors = (n) => {
        let count = 0;
        let i = 2;
        
        while (i * i  1) count++;
        return count;
    };
    
    for (let i = start; i 3-prime pairs with step 4:");
console.log(kPrimeSteps(3, 4, [0, 100]));
2-prime pairs with step 2:
[ [ 4, 6 ], [ 33, 35 ] ]

3-prime pairs with step 4:
[ [ 8, 12 ], [ 20, 24 ], [ 44, 48 ] ]

How It Works

The algorithm follows these steps:

  1. Count prime factors: For each number, divide by all possible prime factors starting from 2
  2. Check pairs: For each position i, verify if both i and i+step have exactly k prime factors
  3. Collect results: Store valid pairs in the result array

Verification Example

Let's verify why [4, 6] and [33, 35] are valid 2-prime pairs with step 2:

function verifyPair(num1, num2, k) {
    const factors1 = countPrimeFactors(num1);
    const factors2 = countPrimeFactors(num2);
    
    console.log(`${num1}: ${factors1} prime factors`);
    console.log(`${num2}: ${factors2} prime factors`);
    console.log(`Both are ${k}-prime: ${factors1 === k && factors2 === k}`);
    console.log(`Distance: ${num2 - num1}`);
    console.log("---");
}

function countPrimeFactors(n) {
    let count = 0, i = 2;
    while (i * i  1) count++;
    return count;
}

verifyPair(4, 6, 2);
verifyPair(33, 35, 2);
4: 2 prime factors
6: 2 prime factors
Both are 2-prime: true
Distance: 2
---
33: 2 prime factors
35: 2 prime factors
Both are 2-prime: true
Distance: 2
---

Conclusion

This solution efficiently finds k-prime pairs within a specified distance by counting prime factors with multiplicity. The algorithm systematically checks each number in the range to identify valid pairs that satisfy both the k-prime condition and distance requirement.

Updated on: 2026-03-15T23:19:00+05:30

471 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements