소인수 분해

Dongs·2023년 2월 6일
0

Algoristhms

목록 보기
2/6

소인수분해

문제

  • 소인수분해란 어떤 수를 소수들의 곱으로 표현하는 것입니다. 예를 들어 12를 소인수 분해하면 2 2 3 으로 나타낼 수 있습니다. 따라서 12의 소인수는 2와 3입니다. 자연수 n이 매개변수로 주어질 때 n의 소인수를 오름차순으로 담은 배열을 return하도록 solution 함수를 완성해주세요.
    (중복값은 삭제한다)
function solution(n) {
    var answer = [];

    for(let i = 2; i <= n; i++) {

        while (n % i === 0) {

            n = n / i;
            answer.push(i);

        }
    }

    return [...new Set(answer)];
}
  • 프로그래머스에서 소인수분해 문제를 접했다.

  • 소인수란?
    1과 자기 자신이 아닌 2 이상 인 수부터 소수의 곱으로만 이루어진 수를 말한다.

그러므로 반복문을 2부터 매개변수 n까지, 또 그 안에서 매개변수를 i로 나눈 나머지가 0 일 때 까지 반복문을 돌려주며 주어진 매개변수를 i로 계속 나누어 변수를 업데이트 해준다. 또한 나눠진 i의 값은 빈 배열에 추가한다. 후에 반복문이 종료되고 나면, 예를 들어 주어진 n이 8 이라고 하면, answer 배열에는 [2, 2, 2] 가 담겨있을 것이다. 이를 Set 메소드를 활용하여 중복값을 제거하여 결과값을 리턴해준다.

profile
자대고 css 하는 프론트엔드 개발자

0개의 댓글