소인수분해란 어떤 수를 소수들의 곱으로 표현하는 것입니다. 예를 들어 12를 소인수 분해하면 2 2 3 으로 나타낼 수 있습니다. 따라서 12의 소인수는 2와 3입니다. 자연수 n이 매개변수로 주어질 때 n의 소인수를 오름차순으로 담은 배열을 return하도록 solution 함수를 완성해주세요.
function solution(n) {
var answer = new Set();
let primeNum = [];
for (let i = 2; i <= 10000; i++) {
if(Array(i).fill(1).every((_, idx) => (idx <= 1) || (i % idx !== 0))) primeNum.push(i);
}
primeNum.map(ele => {
if (n % ele === 0) {
answer.add(ele);
return;
};
});
return [...answer];
}
더 간략하게 작성할 수 있는 코드였고 가독성도 좋아서 참고했으며,
참고한 풀이로 한번 더 풀어봄
function solution(n) {
var answer = new Set();
let i = 2;
while(i <= n) {
if (n % i === 0) {
n /= i;
answer.add(i);
} else {
i++;
}
}
return [...answer];
}