반응형
입력받은 수 n의 약수들 중에서 k번째로 작은 수를 구하는 문제.
먼저 결과를 출력할 result변수를 선언해 0으로 초기화한다 (존재하지 않는 경우 0 출력을 위해)
그리고 1부터 n까지 반복하며 전체 약수를 구한다.
약수는 n을 어떤 수로 나누었을 때 나머지가 0인 것이므로 간단히 구할 수 있다.
이때, count변수를 두어 약수를 발견할 때 마다 하나씩 증가시켜 주자.
이 count가 k와 같아지는 지점에서, count를 result변수에 넣어서 출력해주면 끝.
전체 코드는 다음과 같다.
import java.util.Scanner;
public class Main {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int k = sc.nextInt();
int count = 0;
int result = 0;
for (int i = 1; i <= n; i++) {
if (n % i == 0) {
count++;
if (count == k) {
result = i;
}
}
}
System.out.println(result);
sc.close();
}
}
반응형
'Java > 백준알고리즘' 카테고리의 다른 글
[Java] 백준알고리즘 #5073 삼각형과 세 변 (0) | 2023.10.06 |
---|---|
[Java] 백준알고리즘 #9506 약수들의 합 (0) | 2023.10.05 |
[Java] 백준알고리즘 #2903 중앙 이동 알고리즘 (0) | 2023.10.05 |
[Java] 백준알고리즘 #2720 세탁소 사장 동혁 (2) | 2023.10.05 |
[Java] 백준알고리즘 #11005 진법 변환 2 (0) | 2023.10.05 |