[알고리즘문제풀기] 소인수분해

silver's avatar
Dec 29, 2025
[알고리즘문제풀기] 소인수분해

문제

내가 작성한 정답

import java.util.*; class Solution { public int[] solution(int n) { Set<Integer> set = new TreeSet<>(); int i = 1; while (n>1){ i++; if(n%i==0) { set.add(i); while (n%i==0) n = n/i; } } return set.stream().mapToInt(a->a).toArray(); } } // 그냥 else쓰면 while 한 번 더 안써도 됨 import java.util.*; class Solution { public int[] solution(int n) { Set<Integer> set = new TreeSet<>(); int i = 2; while(n > 1){ if(n%i==0){ set.add(i); n /=i; }else i++; } return set.stream().mapToInt(a->a).toArray(); } }

다른 사람들의 정답

import java.util.LinkedHashSet; class Solution { public int[] solution(int n) { LinkedHashSet<Integer> primeNumbers = new LinkedHashSet<>(); int i = 2; while (n != 0 && i <= n) { if (n % i == 0) { primeNumbers.add(i); n /= i; } else { i++; } } // System.out.println(primeNumbers); return primeNumbers.stream().mapToInt(Integer::intValue).toArray(); } }
Share article

silver