SAL 온라인 저지

몫의 나머지

난이도: Gold 2 시간 제한: 1000 ms 메모리 제한: 128 MB 💰 현상금: 2 G

$\lfloor b^n/a\rfloor$을 소수 $p$로 나눈 나머지를 구하는 프로그램을 작성하시오.

입력

첫 번째 줄에 테스트 케이스의 개수 $T$가 주어진다. $(1\leq T\leq500)$

두 번째 줄부터 $T+1$번째 줄까지 정수 $a, b, n, p$가 주어진다. ($1\leq n\leq10^{18}, 1\leq a<b<p\leq10^9+7$, $p$는 소수)

출력

각 테스트 케이스마다, $\lfloor b^n/a\rfloor$을 소수 $p$로 나눈 나머지를 출력한다.

예제 입력 1

2
3 5 2 11
2 3 5 7

예제 출력 1

8
2

코드 제출