출처 : 반크_세계유산 창덕궁
문제]
어떤 자연수 p와 q가 있을 때, 만일 p를 q로 나누었을 때 나머지가 0이면 q는 p의 약수이다.
6을 예로 들면
6 ÷ 1 = 6 … 0
6 ÷ 2 = 3 … 0
6 ÷ 3 = 2 … 0
6 ÷ 4 = 1 … 2
6 ÷ 5 = 1 … 1
6 ÷ 6 = 1 … 0
그래서 6의 약수는 1, 2, 3, 6, 총 네 개이다.
두 개의 자연수 N과 K가 주어졌을 때, N의 약수들 중 K번째로 작은 수를 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 N과 K가 빈칸을 사이에 두고 주어진다. N은 1 이상 10,000 이하이다. K는 1 이상 N 이하이다.
출력
첫째 줄에 N의 약수들 중 K번째로 작은 수를 출력한다. 만일 N의 약수의 개수가 K개보다 적어서 K번째 약수가 존재하지 않을 경우에는 0을 출력하시오.
예제 입력 1
6 3
예제 출력 1
3
예제 입력 2
25 4
예제 출력 2
0
예제 입력 3
2735 1
예제 출력 3
1
출처 : 백준_2501번
참고풀이]
#include <stdio.h>
int main()
{
int N,K; //N의 약수들 중 K번째의 수를 입력받는 변수
int chk; //K번째의 수를 체크하는 변수
int na; // N을 나눌 변수, 약수를 찾는다.
//N과 K를 입력받는다.
while(1)
{
scanf("%d%d",&N,&K);
if((N>=1 && N<=10000) && (K>=1 && K<=N)) break;
printf("1~10000 또는 1~N의 값을 벗났습니다.\n");
printf("프로그램을 중단합니다.\n");
return 0;
}
//K위치의 약수를 찾아 결과를 출력한다.
for(chk=0,na=1;na<=N;na++)
{
if(N%na==0)
{
chk++;
if(chk==K) printf("%d",na);
}
}
if(chk<K) printf("0");
return 0;
}
참고풀이 결과]
대한민국의 아름다운 영토, 독도의 여름
'프로그램 > C언어 1000제' 카테고리의 다른 글
C언어 146제] 2006년 한국정보올림피아드 지역본선 초등부 1번 홀수 (0) | 2024.06.17 |
---|---|
C언어 145제] 2007년 한국정보올림피아드 지역본선 초등부 1번 최댓값 (0) | 2024.06.13 |
C언어 143제] 2009년 한국정보올림피아드 지역본선 초등부 1번 윷놀이 (1) | 2024.06.13 |
C언어 142제] 2010년 한국정보올림피아드 지역본선 초등부 1번 검증수 (1) | 2024.06.13 |
C언어 141제] 2011년 한국정보올림피아드 지역본선 초등부 1번 지능형 기차 (1) | 2024.06.11 |
댓글