--- id: 5900f36f1000cf542c50fe82 challengeType: 5 title: 'Problem 3: Largest prime factor' forumTopicId: 301952 --- ## Description
The prime factors of 13195 are 5, 7, 13 and 29. What is the largest prime factor of the given `number`?
## Instructions
## Tests
```yml tests: - text: largestPrimeFactor(2) should return a number. testString: assert(typeof largestPrimeFactor(2) === 'number'); - text: largestPrimeFactor(2) should return 2. testString: assert.strictEqual(largestPrimeFactor(2), 2); - text: largestPrimeFactor(3) should return 3. testString: assert.strictEqual(largestPrimeFactor(3), 3); - text: largestPrimeFactor(5) should return 5. testString: assert.strictEqual(largestPrimeFactor(5), 5); - text: largestPrimeFactor(7) should return 7. testString: assert.strictEqual(largestPrimeFactor(7), 7); - text: largestPrimeFactor(8) should return 2. testString: assert.strictEqual(largestPrimeFactor(8), 2); - text: largestPrimeFactor(13195) should return 29. testString: assert.strictEqual(largestPrimeFactor(13195), 29); - text: largestPrimeFactor(600851475143) should return 6857. testString: assert.strictEqual(largestPrimeFactor(600851475143), 6857); ```
## Challenge Seed
```js function largestPrimeFactor(number) { return true; } largestPrimeFactor(13195); ```
## Solution
```js const largestPrimeFactor = (number) => { let largestFactor = number; for (let i = 2; i <= Math.sqrt(largestFactor); i++) { if (!(largestFactor % i)) { let factor = largestFactor / i; let candidate = largestPrimeFactor(factor); return i > candidate ? i : candidate; } } return largestFactor; } ```