import java.io.*;

public class Main {
    public static boolean[] prime;
    
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());
        int goal = n;
        
        if(n==1) { return; }
        
        prime = new boolean[n+1];
        hasPrime(prime, n);

        for(int i=2; i<=n; i++) {
            while(!prime[i] && goal%i==0) {
                System.out.println(i);
                goal /= i;
                if(goal==1) { return; }
            }
        }
    }
    
    public static void hasPrime(boolean[] prime, int n) {
        prime[0] = true;
        prime[1] = true;
        
        for(int i=2; i*i<=n; i++) {
            if(!prime[i]) {
                for(int j=i*i; j<=n; j+=i) {
                    prime[j] = true;
                }
            }
        }
    }
}

'Problem Solving > BOJ' 카테고리의 다른 글

[Gold 3] 1918번 후위 표기식  (0) 2022.03.28
[Silver 5] 11576번 Base Conversion  (0) 2022.03.25
[Silver 2] 17103번 골드바흐 파티션  (0) 2022.03.25
[Silver 4] 2089번 -2진수  (0) 2022.03.25
[Silver 2] 17087번 숨바꼭질 6  (0) 2022.03.25