Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬으로 모듈러 거듭제곱 계산하기: (x^y) % z 구현 방법

세 개의 숫자 x, y, z가 주어졌을 때, 우리의 목표는 (x^y) % z, 즉 x를 y번 거듭제곱한 값을 z로 나눈 나머지를 계산하는 것입니다.

예제

입력:  x = 2, y = 3, p = 3
출력: 2

설명: 2^3 % 3 = 8 % 3 = 2 입니다.

알고리즘

1단계: 세 개의 숫자를 입력받습니다.
2단계: pow() 함수로 거듭제곱을 계산하고, % 연산자로 모듈러(나머지)를 구합니다.
3단계: 결과를 출력합니다.

예제 코드

x = int(input("첫 번째 값 입력 ::>"))
y = int(input("두 번째 값 입력 ::>"))
z = int(1e9+7)
# pow() 함수 사용
d = pow(x, y) % z
print("결과값 =", d)

코드 설명

  • pow(x, y)는 x의 y제곱을 계산하는 파이썬 내장 함수입니다.
  • 모듈러 값 z는 큰 소수인 1e9+7(1,000,000,007)로 설정했는데, 이는 알고리즘 문제에서 오버플로우를 방지하기 위해 널리 사용되는 값입니다.
  • 거듭제곱 결과에 % z를 적용하여 최종 나머지를 구합니다.

실행 결과

첫 번째 값 입력 ::> 2
두 번째 값 입력 ::> 3
결과값 = 8

참고로 위 예제에서는 z가 10^9 + 7이므로 2^3 = 8이 그대로 출력됩니다. 만약 z를 3으로 설정하면 8 % 3 = 2가 출력되어 앞선 예제와 동일한 결과를 얻을 수 있습니다.