Java/백준알고리즘

[Java] 백준알고리즘 #2501 약수 구하기

Sehyeok20 2023. 10. 5. 19:34
반응형

백준알고리즘 #2501 약수 구하기

 

입력받은 수 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();
    }
}
반응형