관리 메뉴

여름 언덕에서 배운 것

[0단계/3점] 소인수분해 본문

가랑비에 옷 젖는 줄 모른다 💻/🌰코테문풀_꾸준히

[0단계/3점] 소인수분해

잔뜩 2025. 3. 20. 01:11

소인수분해 저번에도 나온 거 같은데 또 틀렸네..

import java.util.*;
class Solution {
    public int[] solution(int n) {
        List<Integer> answer = new ArrayList<>();
        for(int i =2; i<=n;i++){
            if(n%i==0){
                answer.add(i);
                while(n%i==0){
                    n/=i;
                }
            }
        }
        return answer.stream().mapToInt(Integer::intValue).toArray();
    }
}

 

✅  2부터 나누는 이유

💡 소수는 2부터 시작하기 때문이다!
즉, 가장 작은 소수2부터 시작해서 순서대로 나누는 것이 중요

예제 1: 12를 소인수분해하는 과정

n = 12
  1. 2로 나눠본다 → 12 ÷ 2 = 6 (2는 소인수!)
  2. 6도 2로 나눠본다 → 6 ÷ 2 = 3 (2는 또 소인수!)
  3. 3은 더 이상 2로 안 나눠지니까 3으로 나눠본다.
  4. 3 ÷ 3 = 1 (✅ 3도 소인수)
  5. 이제 n = 1이 되었으니 끝!

  6. 결과: {2, 3}
728x90