algorithm'''problem solve
[백준] 1629 - 곱셈(분할 정복, 수학)
JunHwa Park
2020. 10. 28. 16:39
https://www.acmicpc.net/problem/1629
1629번: 곱셈
첫째 줄에 A, B, C가 빈 칸을 사이에 두고 순서대로 주어진다. A, B, C는 모두 2,147,483,647 이하의 자연수이다.
www.acmicpc.net
1
2
3
4
5
6
7
8
9
10
11
|
a, b, c = map(int, input().split())
answer = 1
mul = a % c
while b > 0:
if b % 2 == 1:
answer *= mul
answer %= c
mul = ((mul % c) ** 2) % c
b //= 2
print(answer)
|
cs |
직관적으로 b번만큼 루프 돌리면 터진다.
a^4 = (a^2)^2
이걸 이해하면 조금 수월하다.