If you're seeing this message, it means we're having trouble loading external resources on our website.

웹 필터가 올바르게 작동하지 않으면 도메인 *. kastatic.org*.kasandbox.org이 차단되어 있는지 확인하세요.

주요 내용

모듈로 연산이란?

모듈러 연산이란?

두 정수를 나눌 때 다음과 같은 식을 사용할 것입니다:
AB=Q 와 나머지 R
A는 피제수입니다
B는 제수입니다
Q는 몫입니다
R은 나머지입니다
가끔 AB로 나눌 때, 나머지만 필요할 때가 있습니다.
이러한 경우를 위해서 모듈로 연산자 (줄여서 mod)라 불리는 연산자가 있습니다.
위의 기호 A, B, Q, R을 그대로 쓰면, A mod B=R 이 됩니다.
이것을 A 모듈로 BR과 같습니다 라고 말합니다. 여기서 B모듈이라고 합니다.
예를 들어 봅시다:
135=2 나머지 313 mod 5=3

모듈로를 시계로 이해하기

수를 하나씩 증가시면서 3으로 나누면 어떻게 되는지 알아봅시다.
03=0 나머지 013=0 나머지 123=0 나머지 233=1 나머지 043=1 나머지 153=1 나머지 263=2 나머지 0
나머지는 0에서 시작하여 나누는 수보다 하나 작아질 때까지 1씩 증가합니다. 하나 작아진 후에는 이 과정이 반복됩니다.
이를 이해하면 모듈로 연산자를 원을 이용하여 나타낼 수 있습니다.
원의 제일 위에 0을 쓰고 오른쪽으로 정수 1 부터 모듈보다 하나 작은 수까지 시계방향으로 연속해서 씁니다.
예를 들어 12가 0으로 적힌 시계는 모듈이 12인 것을 나타내는 원이 될 것입니다.
A mod B의 답을 알아내기 위해 다음과 같은 과정을 따릅니다:
  1. 크기가 B인 시계를 생성합니다
  2. 0에서 시작하여 A만큼 시계를 돌립니다.
  3. 멈추는 지점의 숫자가 해입니다.
(숫자가 양수이면 시계 방향으로 돌고 숫자가 음수이면 시계 반대 방향으로 돕니다.)

예시

8 mod 4=?

모듈이 4이므로 숫자 0, 1, 2, 3이 있는 시계를 만듭니다.
0에서 시작하여 8까지 시계 방향으로 1, 2, 3, 0, 1, 2, 3, 0과 같이 움직입니다.
0에서 멈추기 때문에 8 mod 4=0 입니다.

7 mod 2=?

모듈이 2이므로 숫자 0, 1이 적힌 시계를 만듭니다.
0에서 시작하여 1, 0, 1, 0, 1, 0, 1과 같이 7번 시계방향으로 움직입니다.
1에서 멈추기 때문에 7 mod 2=1 입니다.

5 mod 3=?

모듈이 3이므로 숫자 0, 1, 2 가 적힌 시계를 만듭니다.
5가 음수이기 때문에 0에서 시작하여 2, 1, 0, 2, 1 과 같이 5번 시계 반대 방향으로 움직입니다.
1에서 멈추기 때문에 5 mod 3=1 입니다.

정리하기

A mod B이고 AB의 배수를 더하면, 결과값은 서로 같습니다.
A mod B=(A+KB) mod B K는 임의의 정수.
예를 들어 봅시다:
3 mod 10=313 mod 10=323 mod 10=333 mod 10=3

주의사항

프로그래밍 언어와 계산기에서의 모듈로

많은 프로그래밍 언어와 계산기에는 mod 연산자가 있으며 보통 % 기호로 표현됩니다. 음수의 결과를 계산할 때 일부 언어에서는 음수 결과값이 나오기도 합니다.
e.g.
-5 % 3 = -2.

합동과 모듈

다음과 같은 식을 볼 수도 있을 겁니다:
AB (mod C)
이것을 AB는 모듈 C에 대한 합동 관계라고 합니다. 위에서 사용한 식과 비슷하지만, 조금 다릅니다.
이 식의 의미와, 이 식이 위의 식과 어떻게 연관되는지는 다음 글에서 설명하겠습니다.