알고리즘

백준 #11653 java 2023.01.24

chaewonni 2023. 1. 24. 23:40

소인수분해 문제! 

 

package boj_basic.step8;

import java.util.Scanner;

public class Q11653 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		int N = sc.nextInt();
		
		while(true) {
			if(N==1)
				break;
			else {
				for(int i = 2; i<=N; i++) {
					if(N%i==0) {
						N=N/i;
						System.out.println(i);
						break;
					}
					
				}
			}
		}

	}

}

중괄호가 되게 많네..ㅎㅎ

무한반복문을 사용해서 입력한 값 N이 2~N으로 나눠질때, N=N/i 으로 N값을 다시 정해주고 break로 빠져나온다! 무한반복문이기 때문에 if문이 계속 만족될 때까지 무한으로 반복된다. 그때마다 i값을 출력해주면 끝!