Home > Baekjoon > 곱셈

곱셈
128 MB 28.104%

출처 : 곱셈

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