문제 분류 수업 진도 대회 채점현황 순위 질문게시판
게임
스도쿠 타이핑 리듬 타자게임 타이핑 테트리스 타이핑 인베이더 타이핑 지뢰찾기 8192 공룡게임 타이핑 플래피버드 랭킹
로그인

8057 : 빠른 거듭제곱 II

•시간제한: 3.000 S •메모리제한: 256 MB •제출: 0 •통과: 0 •만든사람: suakii

8057 : 빠른 거듭제곱 II

시간 3.000s · 메모리 256MB · 제출 0 · 정답 0

문제 설명

세 정수 $a, b, c$가 주어질 때, $a^{b^c} \pmod{10^9+7}$의 값을 구하는 프로그램을 작성하십시오.
단, $0^0 = 1$로 정의합니다.



[제약 조건]
• $1 \le n \le 100{,}000$
• $0 \le a, b, c \le 10^9$

입력 설명

첫째 줄에 테스트 케이스(질의)의 개수 $n$이 주어집니다. ($1 \le n \le 100{,}000$)
다음 $n$개의 줄에 걸쳐 세 정수 $a, b, c$가 공백으로 구분되어 주어집니다. ($0 \le a, b, c \le 10^9$)

출력 설명

각 질의에 대해 $a^{b^c} \pmod{10^9+7}$의 결과를 한 줄에 하나씩 출력합니다.

입력 예시
COPY
복사되었습니다!

3
3 7 2
2 3 0
10 2 3

출력 예시
COPY
복사되었습니다!

742188145
2
100000000

도움

페르마의 소정리 $a^{p-1} \equiv 1 \pmod p$에 의해, 지수 부분인 $b^c$에 소수 $p = 10^9+7$보다 $1$이 작은 $p-1 = 10^9+6$을 법(Modulo)으로 취할 수 있습니다. 즉, $b^c \pmod{10^9+6}$을 먼저 구한 뒤 이를 지수로 적용하여 거듭제곱을 수행합니다.

출처/분류

NOTICE  —  BFStudy OJ 정보샘
애들아, 문제 많이 풀고 게임 잠깐 하는거지?
— 정보샘