freeCodeCamp Challenge Guide: Problem 3: Largest prime factor

Problem 3: Largest prime factor


Problem Explanation

  • To find the largest prime factor of a number, we start from the smallest prime factor 2 and divide the number with it.
  • If the remainder is 0 that means the number is divisible by that prime number, we keep dividing the number by same prime number until that number is no more divisible by that prime number.
  • After that, we incrememnt the prime factor by 1 and repeat this process till the number becomes 1.

Solutions

Solution 1 (Click to Show/Hide)
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;
}
Solution 2 (Click to Show/Hide)
function largestPrimeFactor(number) {
  let prime = 2,
    max = 1;
  while (prime <= number) {
    if (number % prime == 0) {
      max = prime;
      number = number / prime;
    } else prime++; //Only increment the prime number if the number isn't divisible by it
  }
  return max;
}

Relevant Links

3 Likes