반응형
2501번: 약수 구하기
첫째 줄에 N과 K가 빈칸을 사이에 두고 주어진다. N은 1 이상 10,000 이하이다. K는 1 이상 N 이하이다.
www.acmicpc.net
벡터를 생성하고 N을1부터 N까지의 수로 나눈 다음 나누어 떨어지는 숫자(약수)를 벡터에 추가해줬다. 벡터에는 약수만 있으므로 K-1번째(인덱스는 0부터 시작하므로) 숫자를 출력해주면 된다. 단, 벡터의 크기가 K보다 작으면 K째 작은 약수가 없으므로 0을 출력해준다.
#include <iostream>
#include <vector>
using namespace std;
int main(){
int N, K;
cin >> N >> K;
vector<int> lst;
for(int i = 1; i <= N; i++)
if(N % i == 0)
lst.push_back(i);
if(lst.size() < K)
cout << 0 << endl;
else
cout << lst[K - 1] << endl;
return 0;
}
반응형
'알고리즘 문제풀이 > 추천 문제' 카테고리의 다른 글
[ 백준 10870 ] 피보나치 수 5 (C++) (0) | 2022.01.17 |
---|---|
[ 백준 2460 ] 지능형 기차2 (C++) (0) | 2022.01.17 |
[ 백준 10818 ] 최소, 최대 (C++) (0) | 2022.01.17 |
[ 백준 3460 ] 이진수 (C++) (0) | 2022.01.17 |
문제 출처 (0) | 2022.01.17 |