본문 바로가기

백준 문제풀기/JAVA

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

정수 N을 소이수 분해하여

오름차순으로 출력합시다

 

코드입니다

import java.util.Scanner;

public class Main {
	public static void main(String[] args){
		Scanner scan = new Scanner(System.in);

		int n = scan.nextInt();

		while (true) {
			for (int i=2;i<=n;i++) {
				if(n%i==0) {
					n = n/i;
					System.out.println(i);
					break;
				}
			}
			if(n==1) return;
		}
	}
}

if(n==1) return; 코드는

소인수 분해가 끝나면 출력을 중지하거나

1이 입력되도 중지되도록 하는 코드입니다

 

원래 소수인수 분해는 소수만 나누지만

저희는 작은 순서대로 출력해야하기 때문에 (2~~~ 3~~~)

소수만 나누지 않아도 알아서 잘 될겁니다