

이번 문제는 입력받은 수 N의 약수 중 K번째로 작은 값을 출력하는 문제이다.
약수는 N을 나누었을 때 나머지가 0이 되는 수이므로, 1부터 N까지 반복하면서 약수를 찾을 때마다 카운트를 증가시킬 수 있다.
이때 카운트가 K에 도달하면 해당 값을 출력하면 되므로, 모든 값을 끝까지 확인하지 않고도 문제를 해결할 수 있다.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Numerics;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp3
{
internal class math1
{
static void Main(string[] args)
{
//백준 2501 약수 구하기
string[] input = Console.ReadLine().Split();
int N = int.Parse(input[0]); //자연수 N
int K = int.Parse(input[1]); //자연수 N의 약수 중 K번째로 작은 수
int count = 0;
for (int i = 1; i <= N; i++)
{
if (N % i == 0)
{
count++;
if (count == K)
{
Console.WriteLine(i);
return;
}
}
}
Console.WriteLine(0);
}
}
}


'코딩 테스트 > 백준' 카테고리의 다른 글
| 백준 - [단계별로 풀어보기 약수, 배수와 소수 1] 1978 소수 찾기 (0) | 2026.03.27 |
|---|---|
| 백준 - [단계별로 풀어보기 약수, 배수와 소수 1] 9506 약수들의 합 (0) | 2026.03.26 |
| 백준 - [단계별로 풀어보기 약수, 배수와 소수 1] 5086 배수와 약수 (0) | 2026.03.26 |
| 백준 - [단계별로 풀어보기 수학1] 1193 분수 찾기 (0) | 2026.03.25 |
| 백준 - [단계별로 풀어보기 수학1] 2869 달팽이는 올라가고 싶다 (0) | 2026.03.24 |