티스토리 뷰

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

이걸 이해하면 조금 수월하다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함