728x90
반응형
[백준] C++ & C# 약수 구하기 (2501번) 브론즈 3
📝 문제
어떤 자연수 n이 주어졌을 때, n의 약수들 중 k번째로 작은 수를 구하는 프로그램을 작성하시오.
🔎 입력
첫째 줄에 n과 k가 주어진다. (1 ≤ n ≤ 10,000, 1 ≤ k ≤ n)
🔎 출력
n의 약수들 중 k번째로 작은 수를 출력한다. 만약 n의 약수의 개수가 k개보다 적어서 k번째 약수가 존재하지 않는다면 -1을 출력한다.
🎀 입출력 예시
정답
C++
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
int n, k;
cin >> n >> k;
vector<int> count;
// n의 약수를 찾기
for (int i = 1; i <= n; i++)
{
if (n % i == 0)
{
count.push_back(i);
}
}
// 오름차순 정렬 (기본적으로 오름차순이므로 sort()만 호출)
sort(count.begin(), count.end());
// 약수의 개수가 k보다 적을 때
if (count.size() < k) {
cout << 0; // 숫자 0을 출력
} else {
cout << count[k - 1]; // k번째 작은 약수 출력
}
return 0;
}
C#
using System;
class Program
{
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.WriteLine(i);
return;
}
}
}
Console.WriteLine(-1);
}
}
728x90
반응형
'◆C# > C# : 백준 문제 풀이' 카테고리의 다른 글
[백준] C++ & C# 그룹 단어 체커 (1316번) (0) | 2024.09.21 |
---|---|
[백준] C++ & C# 제로 (10773번) (0) | 2024.09.21 |
[백준] C++ & C# Bank Interest (21633번) (0) | 2024.09.21 |
[백준] C++ & C# 웰컴 키트 (30802번) (0) | 2024.09.20 |
[백준] C++ & C# 좌표 정렬하기 (11650번) (0) | 2024.09.20 |