1. 목적
- 공배수와 배수의 처리 방법을 이해한다.
2. 문제 (점수 : 20 점)
- 두 정수를 입력 받아 그 사이에 존재하는 5의 배수와 7의 배수 그리고 5와 7의 최소 공배수(35)의 배수의 갯수를 구하여라
- for / do-while 말고 while 문으로 구현하라.
- 출력 화면
두 정수를 입력하세요 : 890 123
5 의 배수 : 154개
7 의 배수 : 110개
공배수 : 22개
Press any key to continue
5 의 배수 : 154개
7 의 배수 : 110개
공배수 : 22개
Press any key to continue
3. 이해
- 공배수를 정확히 이해하는가?
4. 코드
#include <stdio.h>
int main()
{
int a,b,i,max,min,five_count,seven_count, common_count;
a = b = min = max = five_count = seven_count = common_count = 0;
i = 1;
printf("두 정수를 입력하세요 : ");
scanf("%d %d", &a, &b);
max = a;
max = max < b ? b : max;
min = a;
min = min > b ? b : min;
i = min;
while(i <= max)
{
if(i % 5 == 0) five_count++;
if(i % 7 == 0) seven_count++;
if(i % 35 == 0) common_count++;
i++;
}
printf("5 의 배수 : %d개\n7 의 배수 : %d개\n공배수 : %d개\n",five_count,seven_count,common_count);
return 0;
}
5. 해설
- 어렵지는 않으나 문제를 정확히 이해하지 않으면 틀린 답이 나올 가능성이 충분한 문제 입니다.
- 최소(작은)값과 최대(큰)값 사이에 존재하는 5 / 7 / 35 의 배수의 개수를 구하면 됩니다. 5와 7과 35로 나누었을때 나머지가 0이 되는 갯수를 각각 구하면 쉽습니다.
6. 참고
- 유사 문제