[프로그래머스 / Javascript] 소인수분해

TED·2023년 11월 16일
0

Javascript CodingTest

목록 보기
51/63
post-thumbnail

< 오늘의 문제 >

소인수분해

function solution(n) {
    let answer = [];
    let i = 2;
    
    while (n != 1) {
        if (n % i == 0) {
            answer.push(i)
            while (n % i == 0) {
                n = n / i; 
            }
        }
        i ++;
    }
    return answer;
}
  • 나의 풀이
    let i = 2;
    i를 2로 초기화: 소인수분해를 시작할 가장 작은 소수로 설정.
    while (n != 1)
    n이 1이 아닐 동안 반복: n을 모두 소인수분해할 때까지 반복한다. 소인수분해가 완료되면 n은 1이 된다.
    if (n % i == 0)
    현재의 i가 n의 소인수인지 확인: n을 i로 나누었을 때 나머지가 0이면 i는 n의 소인수다.
    answer.push(i)
    소인수를 answer 배열에 추가: 확인된 소인수 i를 answer 배열에 저장한다.
    while (n % i == 0)
    n을 i로 더 이상 나눌 수 없을 때까지 반복: n이 i로 나누어 떨어지지 않을 때까지 반복한다.
    n = n / i
    n 업데이트: n을 i로 나누어 n을 갱신합니다. 이는 n에서 i의 소인수를 제거한다
profile
컴맹 개발 입문자

0개의 댓글