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 메소드를 활용하여 중복값을 제거하여 결과값을 리턴해준다.