출처 : 곱셈
Solution
Python
import sys
input = sys.stdin.readline
if __name__ == '__main__':
A, B, C = map(int, input().split())
# pow 함수가 분할정복을 통한 거듭제곱 함수이다.
# 제곱하고자하는 값, 거듭제곱 횟수, 모듈러 연산할 값
print(pow(A, B, C))
'''
# 글 참고하고 진행해보았으나, 파이썬 연산자체가 느린지 아래 방식으로 통과 안됨
# 분할정복 관련 글 : https://deepdata.tistory.com/369
answer = 1
while B:
if B&1: answer *= A
A *= A
B >> 1
if answer > 2147483647: answer %= C
print(answer)
'''
문제
자연수 A를 B번 곱한 수를 알고 싶다. 단 구하려는 수가 매우 커질 수 있으므로 이를 C로 나눈 나머지를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 A, B, C가 빈 칸을 사이에 두고 순서대로 주어진다. A, B, C는 모두 2,147,483,647 이하의 자연수이다.
출력
첫째 줄에 A를 B번 곱한 수를 C로 나눈 나머지를 출력한다.
예제 입력 1
10 11 12
예제 출력 1
4