[백준] 1629. 곱셈

원숭2·2022년 1월 24일
0

백준

목록 보기
12/54

문제

풀이

  1. 처음 통과한 코드는 pow함수 활용(pow(a, b, c) 는 a ** b % c의 결과값을 return)
  2. 두번째는 분할 정복으로 해결(ex. 2^11 == 2^5 X 2^5 + 1, 2^10 == 2^5 X 2^5)

코드

a, b, c = map(int, input().split())

def solution(a, b) :
    # 처음 통과
    # return pow(a, b, c)
    
    if b == 1 :
        return a % c
    else :    
        calc = solution(a, b // 2)
        if b % 2 == 0 :
            return (calc * calc % c)
        else :
            return ((calc * calc * a) % c)
    
print(solution(a, b))

0개의 댓글