https://www.acmicpc.net/problem/11653
문제
풀이
소인수를 구하는 문제이다.
풀이의 핵심은 어떤 수 N을 2개의 약수의 곱으로 표현할때, 두 수는 √N 보다 작은 수의 곱으로 나타낸 다는 것이다.
소스코드
package baekjoon.solution;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Baekjoon_11653 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int Number = Integer.parseInt(br.readLine());
StringBuilder sb = new StringBuilder();
for(int i=2;i<=Math.sqrt(Number);i++){
while(Number % i ==0){
sb.append(i).append("\n");
Number = Number/i;
}
}
if(Number != 1)
sb.append(Number);
System.out.println(sb);
}
}
쉬울 줄 알았는데 생각보다 어려운 문제였던 것 같다.