본문 바로가기

BOJ 알고리즘 (T아카데미)

1629번: 곱셈 (구현, 수학) - Tacademy

www.acmicpc.net/problem/1629

 

1629번: 곱셈

첫째 줄에 A, B, C가 빈 칸을 사이에 두고 순서대로 주어진다. A, B, C는 모두 2,147,483,647 이하의 자연수이다.

www.acmicpc.net

# 곱셈
# https://www.acmicpc.net/problem/1629 (구현)

# 거듭제곱
def cpow(a, b, mod):
    # a의 11승
    # 11 = 1011 (2진수)
    # a ** 11 = a ** (1+2+0+8) = (a) * (a**2) * (a**8)
    ret = 1
    while b:
        b, r = divmod(b, 2)
        if r != 0:
            ret = ret * a % mod
        a = a * a % mod

    return ret


a, b, mod = map(int, input().split())
ans = cpow(a, b, mod)
print(ans)