문제 - 어떤 자연수 p와 q가 있을 때, 만일 p를 q로 나누었을 때 나머지가 0이면 q는 p의 약수이다.
두 개의 자연수 N과 K가 주어졌을 때, N의 약수들 중 K번째로 작은 수를 출력하는 프로그램을 작성하시오.
입력 - 첫째 줄에 N과 K가 빈칸을 사이에 두고 주어진다. N은 1 이상 10,000 이하이다. K는 1 이상 N 이하이다.
출력 - 첫째 줄에 N의 약수들 중 K번째로 작은 수를 출력한다. 만일 N의 약수의 개수가 K개보다 적어서 K번째 약수가 존재하지 않을 경우에는 0을 출력하시오.
풀이 -
이번 문제는 간단하게 약수 구하기 입니다. 이는 %을 써서 나머지 값이 0인 경우 cnt을 1씩 증가시켜서 약수의 개수를 셉니다. 이후 cnt 값이 K와 같으면 i를 출력하고 끝내면 됩니다. 만일 K번쨰 약수가 존재하지 않으면 0을 출력하기 위해 23번줄을 실행하면 됩니다.
'알고리즘 공부 > 백준 알고리즘' 카테고리의 다른 글
2581 - 소수 (C++) (0) | 2024.05.28 |
---|---|
9506 - 약수들의 합 (C++) (0) | 2024.05.21 |
5086 - 배수와 약수 (C++) (0) | 2024.05.03 |
2869 - 달팽이는 올라가고 싶다 (C++) (0) | 2024.04.17 |
1193 - 분수찾기 (C++) (0) | 2024.04.16 |