1. 목적
- 배열을 이해한다.
- 최대 공약수를 적용할줄 안다.
2. 문제 (점수 : 20 점)
- 0 보다 큰 정수 4 개를 입력받아서 최대 공약수를 찾아내는 프로그램을 작성하라
- 입력된 정수는 배열에 저장해야 한다.
- 그 이외 특정한 조건 없음
- 출력 형식
정수값을 입력하세요 : 100
정수값을 입력하세요 : 125
정수값을 입력하세요 : 300
정수값을 입력하세요 : 400
최대공약수 : 25
Press any key to continue
정수값을 입력하세요 : 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. 참고
- 공약수 문제