어떤 자연수를 소수의 곱으로 나타내는 것을 소인수분해라고 한다. 예를 들어, 12를 소인수분해하면 2 x 2 x 3으로 나타낼 수 있, 이때 2와 3은 소수이다.
*작은 소수에서 n%i == 0이 성립하지 못한다면 그보다 큰 합성수는 n%i == 0이 성립하지 못하므로 작은 수부터 시작했을 때 나누어 떨어지는 수가 소수라는 점을 이용한다.
while (N > 1) {
    for (int i = 2;;) {
        if (N == 1) return;
        if (N % i == 0) {
            System.out.println(i);
            N /= i;
        } else {
            i++;
        }
    }
}