되는대로 살자

[C언어 기출문제&풀이] 완전 잉여계 본문

2009~2014/C/C++

[C언어 기출문제&풀이] 완전 잉여계

malu 2011. 8. 14. 22:08
프로그램 명: modulo(open)
제한시간: 1 초

13 을 5 로 나누면

13 = 5 * 2 + 3
몫은 2 이고 나머지는 3 이다. 5 로 나눌 때 나머지는 0,1,2,3,4 중 하나이다.

A 를 B 로 나눌 때 몫은 Q 이고 나머지는 R

A = B * Q + R ( 0 <= R < B )
B 로 나눌 대 나머지는 {0,1,2,..,B-1} 이다.

어떤 수열의 나머지가 이 집합을 이룰 때 이를 법(modulo) B 에 관한 완전 잉여계(complete residue system)라 한다.

B 가 5 인 경우 수열이 완전 잉여계인지 아닌지를 판별하는 프로그램을 작성하는 것이 문제이다.

참고로 -1 을 5 로 나눈 나머지는 4 이다.

입력

수 5 개가 입력으로 주어진다. 각 수는 -1000 ~ 1000 사이 정수이다.

출력

완전 잉여계를 이루면 yes 아니면 no 를 출력한다.

입출력 예

입력

5 6 7 8 9

출력

yes

입력

0 6 7 9 13

출력

yes
출처:dovelet


풀이 :
1.입력 받고 n%5 를 배열(n[5])에 저장한다. 
2다른 확인용 배열(mchk[5]) 을 만든다.
3. 그리고 n의 모든 값을 순회하면서 값을 chk에 저장
4. 만약 있었던 숫자이면 no 출력 후 종료
4. 종료되지 않으면  yes 출력 후 종료