[백준] 2501번 약수 구하기 Java 문제 풀이
2023. 3. 20. 18:11ㆍ카테고리 없음
728x90
반응형
문제풀이
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.*;
interface Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
StringTokenizer st;
int[] input = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();
int N = input[0], K = input[1], cnt = 0;
for(int i=1; i<=N; i++) {
if(N%i == 0) {
cnt++;
}
if(cnt == K) {
System.out.println(i);
break;
}
}
if(cnt < K) {
System.out.println(0);
}
}
}
1부터 N까지 반복하면서 N의 약수를 찾아야 합니다.
약수를 만났을 경우 cnt 값을 증가시킵니다.
cnt 값이 K와 같게 되면 i는 N의 약수 중 K 번째로 작은 수가 됩니다.
i를 출력하고 반복을 종료합니다.
cnt가 K보다 작을 경우 약수의 개수가 K 만큼 충분하지 못한 경우입니다.
0을 출력합니다.
출처 : https://www.acmicpc.net/problem/2501
728x90
반응형