1. 목적
  - 배열을 이해한다.
  - 최대 공약수를 적용할줄 안다.

2. 문제 (점수 : 20 점)
  - 0 보다 큰 정수 4 개를 입력받아서 최대 공약수를 찾아내는 프로그램을 작성하라
  - 입력된 정수는 배열에 저장해야 한다.
  - 그 이외 특정한 조건 없음
  - 출력 형식

정수값을 입력하세요 : 100
정수값을 입력하세요 : 125
정수값을 입력하세요 : 300
정수값을 입력하세요 : 400
최대공약수 : 25
Press any key to continue

3. 이해
  - 배열에 자료를 저장할수 있는가?
  - 최대공약수를 이해하고 공약수에서 발전하여 적용하였는가?

4. 코드

#include <stdio.h>

int main()
{
 int in[4] = {0};
 int i, max, gcm;
 i = max = gcm = 0;
 
 while(i<4)
 {
  printf("정수값을 입력하세요 : ");
  scanf("%d",&in[i]);
  max = max < in[i] ? in[i] : max;
  i++;
 }

 i = 1;

 while(i<=max)
 {
  if(in[0] % i == 0 && in[1] % i == 0 && in[2] % i == 0 && in[3] % i == 0)
   gcm = gcm < i ? i : gcm;

  i++;

 }

 printf("최대공약수 : %d\n", gcm);

 return 0;

}

5. 해설
  - 최대공약수는 공약수들 중에서 가장 큰수를 의미 합니다.
  - 공약수 계산할때 첫 숫자는 1에서 시작합니다. (0에서 시작하면 나눗셈 오류)
  - 삼항 연산자를 최대한 활용하였습니다.

6. 참고
  - 공약수 문제

Posted by 카켈