백준 곱셈문제를 풀며 모듈러 연산을 공부하였다.
모듈러 연산이란 나머지를 구하는 연산자로 위의 분배법칙이 성립한다.
곱셈에 대한 분배법칙의 증명은 다음과 같다.
모듈러 연산을 응용한 백준 곱셈 문제 풀이
import sys
input = sys.stdin.readline
A, B, C = map(int, input().split())
r = A % C
def Rest(r,B):
if B == 1:
return r
else:
tmp = Rest(r,B//2)
if not B%2:
return tmp*tmp%C
else:
return tmp*tmp*r % C
print(Rest(r,B))
'Algorithms과 자료구조 > 이분탐색, 분할정복, 스택, 큐, 우선순위큐' 카테고리의 다른 글
파이썬 백준 1933스카이라인_bisect (0) | 2021.11.18 |
---|---|
이분탐색 (이진탐색)_백준 사냥꾼 (0) | 2021.11.17 |
분할정복_백준 2630 색종이_파이썬 (0) | 2021.11.17 |
우선순위 큐(힙) 백준 13334 철로 파이썬 (0) | 2021.11.17 |
검색 알고리즘 (0) | 2021.11.12 |