728x90
★ 문제
- 어떤 자연수 p와 q가 있을 때, 만일 p를 q로 나누었을 때 나머지가 0이면 q는 p의 약수이다.
- 6을 예로 들면
- 6 ÷ 1 = 6 … 0
- 6 ÷ 2 = 3 … 0
- 6 ÷ 3 = 2 … 0
- 6 ÷ 4 = 1 … 2
- 6 ÷ 5 = 1 … 1
- 6 ÷ 6 = 1 … 0
- 그래서 6의 약수는 1, 2, 3, 6, 총 네 개이다.
- 두 개의 자연수 N과 K가 주어졌을 때, N의 약수들 중 K번째로 작은 수를 출력하는 프로그램을 작성하시오.
★ 소스코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
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());
//약수의 순서를 저장할 변수 선언
int count = 0;
//K번째 약수를 저장할 변수 선언
int result = 0;
// 약수 구하는 반복문
for(int i = 1; i <= N; i++) {
//약수가 하나 나올떄마다 count에 +1
if(N % i == 0) {
count++;
}
//count가 K와 같아지면 곧 그 약수가 K번째 약수란 뜻이기에 result에 저장 후 반복문 종료
if(count == K) {
result = i;
break;
}
}
System.out.println(result);
}
}
728x90
'백준 알고리즘' 카테고리의 다른 글
9. 약수, 배수와 소수 - 1 (5086번) (0) | 2023.04.18 |
---|---|
8. 일반 수학1 - 8 (10757번) (0) | 2023.04.17 |
8. 일반 수학1 - 7 (2869번) (0) | 2023.04.17 |
8. 일반 수학1 - 6 (1193번) (0) | 2023.04.17 |
8. 일반 수학1 - 5 (2292번) (2) | 2023.04.17 |