https://www.acmicpc.net/problem/2501
2501번: 약수 구하기
첫째 줄에 N과 K가 빈칸을 사이에 두고 주어진다. N은 1 이상 10,000 이하이다. K는 1 이상 N 이하이다.
www.acmicpc.net
풀이
#include <stdio.h>
int main() {
int n, k;
int arr[10000] = {}; // 모두 0으로 초기화
int j = 0;
scanf("%d %d", &n, &k);
for (int i = 1; i <= n; i++) { // 1~n값까지
if (n % i == 0) { // 나눴을때 나머지가 0이라면 약수
arr[j] = i; // arr[0]부터 내림차순 정렬
j++;
}
}
printf("%d\n", arr[k-1]); // k번째는 1부턴데 배열은 0부터니 -1을 해줌
return 0;
}
문제에서 요구하는 풀이는 아니지만 가장 먼저 떠올랐기 때문에 이렇게 풀었다.
어차피 모든 값이 기본적으로 0으로 초기화 되어있기 때문에
n의 약수 개수가 k개보다 적을때는 고려하지않아도 된다.
'코딩 > 백준 문제 (브론즈)' 카테고리의 다른 글
[백준/1037/C언어] 약수 _ 풀이 (0) | 2023.08.19 |
---|---|
[백준/1032/C언어] 명령 프롬프트 _ 풀이 (0) | 2023.08.19 |
[백준/2903/C언어] 중앙 이동 알고리즘 _ 풀이 (0) | 2023.08.18 |
[백준/2444/C언어] 별 찍기 - 7 _ 풀이 (0) | 2023.08.18 |
[백준/15917/C언어] 노솔브 방지문제야!! _ 풀이 (0) | 2023.08.18 |