[C++] 백준 2501 | 약수 구하기

heige·2023년 12월 28일
0

BOJ

목록 보기
30/46
post-thumbnail

문제

https://www.acmicpc.net/problem/2501

풀이

  • 약수 담을 vector 만든다.
  • 입력 받을 n, k 선언
  • 약수 총 개수를 셀 cnt 변수 만들고 초기화
  • n까지 루프 돌며 약수를 담고, 개수를 센다.
  • kcnt보다 작거나 같을 경우 k번째 약수는 div[k-1]로 구하면 된다.
  • kcnt보다 클 경우 0을 출력
#include <bits/stdc++.h>
using namespace std;
int main() {
  vector<int> div;
  int n, k;
  int cnt  = 0;
  cin >> n >> k;
  
  for (int i = 1; i <= n; i++) {
    if (n % i == 0) {
      div.push_back(i);
      cnt++;
    }
  }
  if (cnt >= k)
    cout << div[k-1];
  else
    cout << 0;
  return 0;
}
profile
웹 백엔드와 클라우드 정복을 위해 탄탄한 기반을 쌓아가고 있는 예비개발자입니다. 'IT You Up'은 'Eat You Up'이라는 표현에서 비롯되어, IT 지식을 끝까지 먹어치운다는 담고 있습니다.

0개의 댓글