소인수분해 하기

ElenaPark·2022년 11월 26일
0

알고리즘

목록 보기
35/37

주어진 n인 자연수를 소수(1과 자기자신만 약수로 가지는 수)가 나올 때까지 계속 소수로 나누기

function solution(n) {
	// 인수를 담을 배열 생성
    const factors =[];
    // 주어지는 자연수를 temp에 저장
    let temp = n;
    for(let i = 2; i <= n; i++) {
        while(temp % i === 0) {
            // 업데이트되는 몫을 temp에 저장
            temp = temp / i
            // 나누는 인수를 배열에 저장
            factors.push(i)
        }
        // 몫이 1이 되면 반복문을 빠져나옴
        if(temp === 1) break;
    }
    
    // 중복을 제거하여 리턴
    return [...new Set(factors)];
}
profile
Front-end 개발자입니다.

0개의 댓글