본문 바로가기
Development/Baekjoon

[C#] 2501번: 약수 구하기

by Mobics 2025. 9. 14.

목차


    백준 단계별로 풀어보기

    25.09.14

    9단계: 약수, 배수와 소수 1


    2501번: 약수 구하기

    문제 링크 : https://www.acmicpc.net/problem/2501

     

    문제 풀이

    >> 문제를 풀기 위해 알아야 할 개념

    - 약수를 구하는 방법

    : 문제에서 나왔듯, 큰 수를 작은 수로 나눴을 때 나머지가 0이면 작은 수는 큰 수의 약수이다.

     

    >> 풀이

    1. 두 자연수 N과 K를 입력받아 int값으로 변환한다.
    2. 작은 수부터 약수를 구할 것이므로 몇 번째로 작은 수인지 체크할 변수를 선언한다.
    3. for 반복문을 1부터 N까지 실행하여 약수를 찾는다.
    4. N을 i로 나눴을 때 나머지가 0이라면 i가 N의 약수이므로 count를 1 늘린다. 이를 반복하다가 count가 K번째에 도달했을 때, i를 출력하여 K번째 약수를 출력하고 코드를 종료시킨다.
    5. 만약 for 반복문을 모두 마칠 때까지 코드가 종료되지 않았다면 N의 약수의 개수가 K개보다 적은 것이므로 0을 출력한다.

     

    정답 코드

    class Backjoon
    {
        static void Main(string[] args)
        {
            string[] input = Console.ReadLine().Split();
            int N = int.Parse(input[0]);
            int K = int.Parse(input[1]);
            int count = 0;
    
            for (int i = 1; i <= N; i++)
            {
                if (N % i == 0)
                {
                    count++;
                    if (count == K)
                    {
                        Console.Write(i);
                        return;
                    }
                }
            }
            Console.Write(0);
        }
    }

    'Development > Baekjoon' 카테고리의 다른 글

    [C#] 1978번: 소수 찾기  (0) 2025.09.16
    [C#] 9506번: 약수들의 합  (0) 2025.09.15
    [C#] 5086번: 배수와 약수  (0) 2025.09.13
    [C#] 2869번: 달팽이는 올라가고 싶다  (0) 2025.09.12
    [C#] 1193번: 분수찾기  (0) 2025.09.11