1. 목적
  - 공약수의 개념을 이해한다.

2. 문제 (점수 : 20점)
  - 정수값 세개를 입력 받고 이 수들의 공약수를 찾는 프로그램
  - 특정 제한 없음
  - 출력 화면
정수 값을 입력하세요 : 25 800 450
25, 800, 450 의 공약수 : 1 5 25
Press any key to continue

3. 이해
  - 공약수의 개념을 이해하는가?
  - 나머지의 개념을 이해하는가?

4. 코드

#include <stdio.h>

int main()
{
 int a,b,c,i,max;
 a = b = c = max = 0;
 i = 1;
 
 printf("정수 값을 입력하세요 : ");
 scanf("%d %d %d", &a, &b, &c);

 max = a;
 max = max < b ? b : max;
 max = max < c ? c : max;

 printf("%d, %d, %d 의 공약수 : ", a, b, c);
 while(i <= max)
 {
  if (a % i == 0 && b % i == 0 && c % i == 0) printf("%d ",i);
  i++;
 }

 putchar('\n');
 
 return 0;
}


5. 해설
  - 공약수는 해당 여러 숫자의 공통적으로 나머지가 0이 되는 약수를 의미합니다.
  - 우선 세수의 최대값을 찾고 최대값 까지 나머지가 0이 되는 숫자를 출력하면 됩니다.
  - 0으로 나누면 오류가 생기므로 시작값은 1부터 합니다.

6. 참고
  - http://www.winapi.co.kr/clec/cpp1/5-1-2.htm : 산술 연산자
Posted by 카켈