1. 목적
  - 공배수와 배수의 처리 방법을 이해한다.

2. 문제 (점수 : 20 점)
  - 두 정수를 입력 받아 그 사이에 존재하는 5의 배수와 7의 배수 그리고 5와 7의 최소 공배수(35)의 배수의 갯수를 구하여라
  - for / do-while 말고 while 문으로 구현하라.
  - 출력 화면
두 정수를 입력하세요 : 890 123
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. 참고

  - 유사 문제
Posted by 카켈