반응형
https://www.acmicpc.net/problem/2501
- 문제
- 문제 풀이
백준 2501번 약수 구하기는 브론즈 3 난이도의 수학 및 브루트 포스 문제이다. 이 문제에서는 숫자 n과 k가 주어진다. n의 k번째 약수를 출력하면 된다.
이 문제는 간단한 for-loop을 이용해서 풀 수 있다. for-loop의 조건은 i = 1부터 시작해서 i = n까지 이고 만약에 n % i == 0이면 k를 1씩 감소시킨다. 그리고 감소시켰을 때 k가 0이 되면 i의 값을 출력해주면 된다. 이 이유는 k번째 약수이기 때문이다.
자세한 코드는 밑에서 참고할 수 있다.
- 코드
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int n = Integer.parseInt(st.nextToken());
int k = Integer.parseInt(st.nextToken());
for (int i = 1; i <= n; i++) {
if (n % i == 0) {
k--;
}
//k번째 약수이면 i 출력
if (k == 0) {
System.out.print(i);
return;
}
}
//k번째 약수가 없으면 0 출력
System.out.print(0);
}
}
반응형
'백준' 카테고리의 다른 글
[백준] 5554번 : 심부름 가는 길 – JAVA [자바] (0) | 2022.08.06 |
---|---|
[백준] 9654번 : 나부 함대 데이터 – JAVA [자바] (0) | 2022.08.05 |
[백준] 4101번 : 크냐? – JAVA [자바] (0) | 2022.08.03 |
[백준] 5522번 : 카드 게임 – JAVA [자바] (0) | 2022.08.03 |
[백준] 5565번 : 영수증 – JAVA [자바] (0) | 2022.08.03 |
댓글