알고리즘/백준
백준 11653번 소인수분해 / 백준 단계별로 풀어보기 8단계 / 8. 기본 수학 2
김발자~
2022. 9. 17. 20:07
반응형
백준 8단계 3번 문제 - 11653 소인수분해
https://www.acmicpc.net/problem/11653
11653번: 소인수분해
첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다.
www.acmicpc.net
8. 기본 수학 2 (3) 백준 11653번 문제 소인수분해
문제
과정 생각해보기
2부터 시작해서 나머지가 0이 아닐 때까지 반복문을 짠다
나눠질 때마다 몫이, 즉 소수가 출력되도록 반복문 안에 println을 넣어준다
정답 인정 코드
위에서 생각한 과정으로 도출한 코드는 다음과 같다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
for(int i = 2; i <= n; i++) {
while (true) {
if(n % i == 0) {
n /= i;
System.out.println(i);
}else break;
}
}
}
}
|
cs |
처음엔 for문 하나만 썼는데, 그러면 작동이 안 돼서 while문까지 추가했다
직후 백지 복습
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
for(int i = 2; i <= n; i++) {
while(true) {
if(n % i == 0) {
n /= i;
System.out.println(i);
}
else break;
}
}
}
}
|
cs |
BufferedReader로 풀었다
식은 똑같다
반응형