알고리즘/백준

[백준] 11653번 : 소인수분해 - JAVA [자바]

DevelopJJong 2022. 6. 2. 19:44

 

알고리즘 접근 방법

일단 2부터 N까지 N을 나누어야 했다.

그리고 만약 2가 나누어지면 N을 2로 나누고 다시 2로 나누고 while문 안에서 2로 만약 안 나눠지면 while문 밖으로 나온다. 그리고 i++한 값을 또 대입하고 무한 반복을 해야한다고 생각을 했다.

 

헷갈린 부분

for문 안에서 while문이 돌아간다는 것이 잘 이해가 안됬다.

 

보안할 점

Scanner 말고 Buffered Reader을 사용해서 푸는 방법도 익혀야겠다.

그 전에 BufferedReader부터 공부를 열심히 해야겠다.

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();
        for(int i = 2; i <= N; i++) {
            while(N % i == 0) {/* i=2 로 나누어서 안나누어지면 밖으로 나간다. i=3을 넣어본다 안나누어지면 밖으로 나간다. */
                System.out.println(i);
                N = N/i;
            }
        }
    }
}