재귀적 거듭제곱


답안 제출

Points: 10
시간 제한: 2.0s
메모리 제한: 1G

문제 유형
허용된 언어
Python

세 정수 base, exponent, mod를 받아 baseexponent제곱을 mod로 나눈 나머지를 반환하는 함수 RecursivePower를 작성하시오. 지수를 절반으로 나누는 재귀 호출을 사용해야 하며, 같은 단계에서 같은 재귀 호출을 두 번 실행하지 않도록 그 결과를 변수에 저장해야 한다.

함수 원형은 주어지지 않는다. 설명과 아래의 호출 코드를 보고 함수의 매개변수와 반환값을 직접 설계한다.

함수를 사용하는 코드

작성한 함수는 아래 코드와 함께 실행된다.

base, exponent, mod = map(int, input().split())

result = RecursivePower(base, exponent, mod)
print(result)
print(type(result))

위 코드가 정상적으로 동작하도록 함수를 직접 정의한다. 제출할 때는 작성한 함수의 정의 전체만 제출한다.

입력

첫째 줄에 base, exponent, mod가 주어진다.

  • \(-1,000,000,000 \le base \le 1,000,000,000\)
  • \(0 \le exponent \le 1,000,000,000,000,000,000\)
  • \(1 \le mod \le 1,000,000,000\)

출력

baseexponent제곱을 mod로 나눈 나머지를 출력한다. exponent0이면 1 % mod를 반환한다. 함수는 int를 반환해야 한다.

마지막 줄에는 함수가 반환한 값의 자료형을 출력한다.

금지 키워드

다음 문자열은 소스 코드에 포함될 수 없다.

  • pow
  • **

예제 입력 1

2 10 1000

예제 출력 1

24
<class 'int'>

예제 입력 2

3 0 7

예제 출력 2

1
<class 'int'>

코멘트

현재 작성된 코멘트가 없습니다.