백준 11653, 소인수분해

2021. 9. 8. 11:18CodingTest

문제

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

 

11653번: 소인수분해

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

www.acmicpc.net

 

문제요약

1. 정수 n이 주어졌을때 n에 대한 소인수분해 인수들을 출력합니다.

 

문제풀이

1. 정수 n이 1이 될때 소인수분해는 종료되고 나누는 수는 소수이므로 해당 소수로 n이 나누어지는 경우 해당 소수를 출력하고 n을 나눕니다.

2. 만약 해당 소수로 나누어지지 않으면 나누는 수를 증가시켜 1번 과정을 반복수행합니다.

 

소스코드

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


public class Main {
	public static void solution(int n)
	{
		int n_ = n;
		int divisor = 2;
		while(n_!=1)
		{
			if(n_%divisor==0)
			{
				System.out.println(divisor);
				n_ /= divisor;
			}
			else 
			{
				divisor++;
			}
		}
	}
	
	public static void main(String args[]) throws IOException
	{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		int n = Integer.parseInt(br.readLine());
		solution(n);
	}
}

'CodingTest' 카테고리의 다른 글

백준 15649, N과 M (1)  (0) 2021.09.22
백준 2193, 이천수  (0) 2021.09.13
프로그래머스 위클리 챌린지 6주차  (0) 2021.09.08
백준 11726, 2 x n 타일링  (0) 2021.09.06
프로그래머스 위클리 챌린지 4주차  (0) 2021.09.02