수학
분할 정복을 이용한 거듭제곱
을 사용하는 문제
import sys
a,b,c = map(int, sys.stdin.readline().rstrip().split())
def remainder_thr(a,b,c) :
# b가 1이 되면 이젠
if b==1 : return a%c
else :
target =remainder_thr(a, b//2, c)
if b%2==1 : # 홀수라면
return (target * target * a) %c
else : return (target * target) %c
print(remainder_thr(a,b,c))
import sys
a,b,c = map(int, sys.stdin.readline().rstrip().split())
res=1
for i in range(b) :
res*=a
print(res%c)
import sys
a,b,c = map(int, sys.stdin.readline().rstrip().split())
res=a**b
print(res%c)
import sys
a,b,c = map(int, sys.stdin.readline().rstrip().split())
cnt=1; res=1
def mull(p, a) :
return p*a
while cnt<=b:
res=mull(res, a)
cnt+=1
print(res%c)
출처 : https://tmdrl5779.tistory.com/114