문제
자연수 A를 B번 곱한 수를 알고 싶다. 단 구하려는 수가 매우 커질 수 있으므로 이를 C로 나눈 나머지를 구하는 프로그램을 작성하시오.
입출력 예시
입력: 첫째 줄에 A, B, C가 빈 칸을 사이에 두고 순서대로 주어진다. A, B, C는 모두 2,147,483,647 이하의 자연수이다.
출력: 첫째 줄에 A를 B번 곱한 수를 C로 나눈 나머지를 출력한다.
입력예시1)
10 11 12
출력예시1)
4
코드
a, b, c = map(int, input().split())
def pow(C, n):
if n == 1: return C % c
else:
x = pow(C, n//2)
if n % 2 == 0: return (x * x) % c
else: return (x * x * C) % c
print(pow(a, b))
실행 화면
채점 결과
728x90
'문제 풀이 > [BaekJoon]' 카테고리의 다른 글
[BaekJoon] 1991 트리 순회 (Silver 1) - Python (0) | 2023.01.10 |
---|---|
[BaekJoon] 1932 정수 삼각형 (Silver 1) - Python (0) | 2023.01.10 |
[BaekJoon] 1149 RGB거리 (Silver 1) - Python (0) | 2023.01.10 |
[BaekJoon] 16953 A → B (Silver 2) - Python (0) | 2023.01.09 |
[BaekJoon] 15666 N과 M (12) (Silver 2) - Python (0) | 2023.01.09 |