문제설명
소스코드
#include <iostream>
using namespace std;
int main()
{
int N, K; int count = 0;
cin >> N >> K;
int* arr = new int[N];
for (int i = 1; i <= N ; ++i) if (N % i == 0) arr[count++] = i;
if (count < K) cout << "0";
else cout << arr[K - 1];
}
풀이
- N개 만큼 int형 배열 동적할당
- N을 i로 나누었을 때 나머지가 0이면 arr[count]에 i를 대입시키고 i를 증가시킴(배열에는 약수가 작은 순서대로 들어감)
- count가 K보다 작으면 0을 출력 그렇지 않으면 arr[K - 1]을 출력 (배열의 인덱스는 0부터 시작하기 때문)
'자료구조 & 알고리즘 > BOJ' 카테고리의 다른 글
[C++] 백준 9단계 - 1978번 문제 (소수 찾기) (0) | 2023.05.12 |
---|---|
[C++] 백준 9단계 - 9506번 문제 (약수들의 합) (0) | 2023.05.12 |
[C++] 백준 9단계 - 5086번 문제 (배수와 약수) (0) | 2023.05.10 |
[C++] 백준 8단계 - 10757번 문제 (큰 수 A+B) (0) | 2023.05.09 |
[C++] 백준 10단계 - 27323번 문제 (직사각형) (0) | 2023.05.09 |