CS/알고리즘_문제풀이(자바)

소인수분해

Jedy_Kim 2021. 9. 10. 12:03
728x90

문제

정수 N이 주어졌을 때, 소인수분해하는 프로그램을 작성하시오.

소인수란 소수인 인수(약수)를 의미한다.  

입력

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

 

출력

N의 소인수를 한 줄에 하나씩 오름차순으로 출력한다..

 

예제 입력

72

예제 출력

2

2

2

3

3

 

예제 입력

3

예제 출력

3

 

예제 입력

6

예제 출력

2

3

 

예제 입력

9991

예제 출력

97

103

 

// 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import java.util.*;
import java.io.*;
 
public class Main{
  public static void main(String[] args) throws Exception {
    // Please Enter Your Code Here
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    StringTokenizer st = new StringTokenizer(br.readLine());
    
    int n = Integer.parseInt(st.nextToken());
    
    for(int i = 2; i <= n;) {
      if(n%i == 0) {
        n /= i;
        System.out.println(i);
      } else {
        i++;
      }
      
      if(n == 1break;
      
    } 
 
  }
}
cs

 

반응형

'CS > 알고리즘_문제풀이(자바)' 카테고리의 다른 글

대소문자 변환  (0) 2021.09.10
베르트랑 공준  (0) 2021.09.10
가로수  (0) 2021.09.09
Fly me to the Alpha Centauri  (0) 2021.09.09
조합 0의 개수  (0) 2021.09.09