import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int num; // 나누어지는 수
int k;
int result = 0; // k번째로 작은 약수 저장
/*
num, k 입력 받기
*/
String str = br.readLine();
num = Integer.parseInt(str.split(" ")[0]);
k = Integer.parseInt(str.split(" ")[1]);
/*
k번째로 작은 약수 찾기
*/
int count = 0; // 약수의 개수
for(int i = 1; i <= num; i++){
if(count < k){
// k번째 약수를 찾을 때까지 반복
if(num % i == 0){
// i가 약수이면
result = i;
count++;
}
}
}
/*
출력
*/
if(count < k) // 약수의 개수가 적어서 k번째 약수가 없을 경우
System.out.println(0); //0 출력
else
System.out.println(result); // 그렇지 않으면 result 출력
}
}
나는 k번째 약수를 찾을 때까지 반복하도록 했고,
int count = 0; // 약수의 개수
for(int i = 1; i <= num; i++){
if(count < k){
// k번째 약수를 찾을 때까지 반복
if(num % i == 0){
// i가 약수이면
result = i;
count++;
}
}
}
count값이 k보다 작다면 k번째 약수가 없는 것이므로 0을 출력하도록 했다.
if(count < k) // 약수의 개수가 적어서 k번째 약수가 없을 경우
System.out.println(0); //0 출력
else
System.out.println(result); // 그렇지 않으면 result 출력
count가 k이면 result에 i를 저장한다.
만약 약수의 개수가 적어 k번째 약수가 없다면 result가 초기값 그대로 0이다.
int count = 0; // 약수의 개수
for(int i = 1; i <= num; i++){
if(num % i == 0){
count++; // i가 약수면 count
if(count == k) result = i; // k번째 약수면 저장
}
}
따라서 간단히 result만 출력하면 된다!
System.out.println(result);
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int num; // 나누어지는 수
int k;
int result = 0; // k번째로 작은 약수 저장
/*
num, k 입력 받기
*/
String str = br.readLine();
num = Integer.parseInt(str.split(" ")[0]);
k = Integer.parseInt(str.split(" ")[1]);
/*
k번째로 작은 약수 찾기
*/
int count = 0; // 약수의 개수
for(int i = 1; i <= num; i++){
if(num % i == 0){
count++; // i가 약수면 count
if(count == k) result = i; // k번째 약수면 저장
}
}
/*
출력
*/
System.out.println(result);
// 약수의 개수가 적어서 k번째 약수가 없다면 기본값인 0이 출력됨
}
}