본문 바로가기
Algorithm/Baekjoon

[백준 알고리즘][자바] 11653번 : 소인수분해

by hyunipad 2021. 8. 2.
반응형

https://www.acmicpc.net/problem/11653

 

11653번: 소인수분해

첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다.

www.acmicpc.net

이번 포스팅은 11653번 : 소인수분해입니다.

먼저 소인수란 자연수의 인수중 소수를 뜻합니다. 어떤 자연수를 소인수의 곱으로 분해한 것을 소인수분해라고 합니다.

거창하게 소인수라는 말을 쓰지만, 실상은 그냥 자연수를 나눌 수 있는 가장 작은 자연수로 잘게 쪼개는 것입니다.

 

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class Main {

	public static void main(String[] args) throws NumberFormatException, IOException {

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

		int num = Integer.parseInt(br.readLine());

		for (int i = 2; i <= num; i++) { // 2부터 시작
			if (num % i == 0) { // 나머지가 0이면 소인수 가능 숫자
				bw.write(String.valueOf(i) + "\n");
				num = num / i;
				i = 1; // 소인수 했으면 다시 2부터 시작하기 위해 i를 1로 리셋
			}
		}

		br.close();
		bw.flush();
		bw.close();
	}
}

 

 

 

 

 

 

 

 

 

 

 

반응형

댓글