원본 : www.acmicpc.net/problem/11653
11653번: 소인수분해
첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다.
www.acmicpc.net
풀이
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(System.out));
int n = Integer.parseInt(reader.readLine());
if(n != 1) {
if (isPrimeNum(n)) {
writer.write(n + "\n");
} else {
int mod = 2;
while(true) {
if (n % mod == 0) {
while(true) {
writer.write(mod + "\n");
n /= mod;
if (n % mod != 0) {
break;
}
}
}
mod++;
if (n == 1) {
break;
}
}
}
}
writer.flush();
}
public static boolean isPrimeNum(int num) {
int count = 0;
for (int i = 1; i <= num; i++) {
if (num % i == 0) {
count++;
}
if (count > 2) {
return false;
}
}
return true;
}
}
댓글 영역