가장 큰 소인수 구하기 (Javascript)

가장 큰 소인수 구하기 (Javascript)

차례 - 소수란? (Prime factor) - 소수 구하는 방법? - 문제해결방법

소수란?(Prime factor) - 소수란 약수로 1과 자기 자신만을 가지는 수이다.

소수를 구하는 방법 - 주어진 수보다 작은 수로 나누어 떨어지면 소수가 아니다. - 별도로 소수를 구하는 공식은 현재는 없는 것 같다...;

문제해결방법 - 특정 수의 가장 큰 소인수 구하기

function largestPrimeNumber(number) {
  var divisor = 2;
  while (divisor <= number) {
    if (number % divisor === 0) {
      number /= divisor;
    } else {
      divisor++;
    }
  }
  return divisor;
}
largestPrimeNumber(10); // --> 5
largestPrimeNumber(13); // --> 13

- 위의 코드를 보면, 1은 소수가 아니기 때문에 주어진 수를 나눌 수를 2부터 시작 했습니다. - 소인수를 구하려면 나눗수가(divisor) 나눌수보다 작아야 하기 때문에 while문의 조건으로 나눗수의 범위를 지정해 주었습니다. (divisor <= number) - divisor로 주어진 수가 나누어 떨어지면, 해당 수를 divisor로 나누기를 합니다. divisor로 나누어 떨어지지 않으면 divisor + 1을 실행해 줍니다. - while문의 조건에 부합하지 않을 때까지 반복문을 실행한 후 종료합니다. - 반환된 divisor는 주어진 수의 가장 큰 소인수가 됩니다. - 위 코드는 stackoverflow를 참고 했습니다.