--- id: 5900f39c1000cf542c50feae challengeType: 5 title: 'Problem 47: Distinct primes factors' forumTopicId: 302145 --- ## Description
The first two consecutive numbers to have two distinct prime factors are:
14 = 2 × 7
15 = 3 × 5
The first three consecutive numbers to have three distinct prime factors are:
644 = 2² × 7 × 23
645 = 3 × 5 × 43
646 = 2 × 17 × 19
Find the first four consecutive integers to have four distinct prime factors each. What is the first of these numbers?
## Instructions
## Tests
```yml tests: - text: distinctPrimeFactors(2, 2) should return 14. testString: assert.strictEqual(distinctPrimeFactors(2, 2), 14); - text: distinctPrimeFactors(3, 3) should return 644. testString: assert.strictEqual(distinctPrimeFactors(3, 3), 644); - text: distinctPrimeFactors(4, 4) should return 134043. testString: assert.strictEqual(distinctPrimeFactors(4, 4), 134043); ```
## Challenge Seed
```js function distinctPrimeFactors(targetNumPrimes, targetConsecutive) { // Good luck! return true; } distinctPrimeFactors(4, 4); ```
## Solution
```js function distinctPrimeFactors(targetNumPrimes, targetConsecutive) { function numberOfPrimeFactors(n) { let factors = 0; // Considering 2 as a special case let firstFactor = true; while (n % 2 == 0) { n = n / 2; if (firstFactor) { factors++; firstFactor = false; } } // Adding other factors for (let i = 3; i < Math.sqrt(n); i += 2) { firstFactor = true; while (n % i == 0) { n = n / i; if (firstFactor) { factors++; firstFactor = false; } } } if (n > 1) { factors++; } return factors; } let number = 0; let consecutive = 0; while (consecutive < targetConsecutive) { number++; if (numberOfPrimeFactors(number) >= targetNumPrimes) { consecutive++; } else { consecutive = 0; } } return number - targetConsecutive + 1; } ```