MCP로 연결 →

계산 입력

공식

광고

결과

모듈러 지수 연산 결과
9
7^256 mod 13
7
지수 256
모듈러스 13

거듭제곱 모듈러 계산기란?

거듭제곱 모듈러 계산기는 \((\text{밑}^{\text{지수}}) \bmod m\), 즉 어떤 수를 거듭제곱한 뒤 모듈러스 m으로 나눈 나머지를 구합니다. 이 연산을 '모듈러 지수 연산(modular exponentiation)'이라고 하며, 정수론과 암호학 곳곳에서 핵심 역할을 합니다. RSA 암호화, 디피-헬만(Diffie-Hellman) 키 교환, 소수 판정, 해시 함수 등이 모두 이 연산을 기반으로 합니다. 거대한 거듭제곱을 먼저 계산한 뒤 나머지를 구하는 직접적인 방식은 지수가 커지면 사실상 불가능하므로, 대신 빠른 알고리즘을 사용합니다.

사용 방법

세 개의 정수를 입력하세요. 밑(base), 지수(exponent)(0 또는 양의 정수), 그리고 모듈러스 m(1보다 큰 양의 정수)입니다. 계산 버튼을 누르면 0부터 m−1 사이의 값으로 결과가 나옵니다. 음수 밑을 넣어도 자동으로 적절한 음이 아닌 나머지(잉여, residue)로 변환됩니다.

공식 풀이

이 계산기는 다음 공식을 사용합니다.

$$\text{result} = \text{Base}^{\text{Exponent}} \bmod \text{Modulus}$$

이 계산기는 \(\text{밑}^{\text{지수}}\)라는 거대한 수를 직접 만들지 않고 제곱-곱셈(square-and-multiply) 기법(이진 거듭제곱이라고도 함)을 사용합니다. 먼저 지수를 이진수로 읽습니다. 결과값을 1로 시작해, 밑을 m으로 나눈 나머지를 계속 제곱해 나갑니다. 그리고 현재 보고 있는 지수의 이진 자릿수가 1일 때마다 그 제곱한 값을 누적 결과에 곱하고, 다시 m으로 나눈 나머지를 취합니다. 모든 중간 계산값이 \(m^2\)보다 작게 유지되기 때문에 지수가 수백 자리에 달해도 계산이 매우 빠릅니다.

광고
제곱-곱셈 모듈러 거듭제곱 알고리즘 순서도
제곱-곱셈법: 지수의 비트를 훑으며 각 단계에서 제곱하고 비트가 1이면 곱하며, 항상 m으로 나눈 나머지를 취한다.

예제로 보는 계산

\(7^{256} \bmod 13\)을 계산해 봅시다. 13에 대한 7의 위수(order)는 12를 나누며, \(7^{12} \equiv 1\)입니다. \(256 = 12 \times 21 + 4\)이므로 $$7^{256} \equiv 7^{4} = 2401 \equiv 9 \pmod{13}$$가 됩니다. 따라서 답은 9입니다. 217자리나 되는 \(7^{256}\)이라는 수를 전혀 만들지 않고도 즉시 구할 수 있습니다.

반복 제곱으로 base^exponent mod m을 계산하는 단계 표
각 단계에서 현재 값을 제곱해 m으로 나눈 나머지를 구하고, 지수 비트가 1인 곳에서 밑을 곱한다.

자주 묻는 질문(FAQ)

모듈러스가 1이면 어떻게 되나요? 모든 정수는 1에 대해 0과 합동이므로 결과는 0입니다.

지수가 0이어도 되나요? 네. 어떤 수든 0제곱은 1이므로 결과는 \(1 \bmod m\)이 됩니다(\(m > 1\)일 때는 1).

왜 거듭제곱을 그냥 직접 계산하지 않나요? 지수가 크면 중간 계산값의 자릿수가 천문학적으로 늘어나 오버플로가 발생합니다. 매 단계마다 나머지를 취하면 값이 작게 유지되어 훨씬 효율적입니다.

최종 업데이트: