1 이상 N 이하이고 서로 다른 i, j에 대해 i^A + j^B가 K로 나누어떨어지는 순서쌍의 개수를 세어 10^9+7로 나눈 값을 구한다.
왓슨과 셜록은 같이 운동하는 헬스장 친구다.
헬스 트레이너는 두 사람에게 세 정수 AAA, BBB, NNN을 주고, NNN 이하의 서로 다른 양의 정수 iii와 jjj를 고르라고 했다. 왓슨은 매일 새싹을 정확히 iAi^AiA개 먹어야 하고, 셜록은 매일 정확히 jBj^BjB개 먹어야 한다.
왓슨과 셜록은 어느 날 두 사람이 먹은 새싹 개수의 합이 어떤 정수 KKK로 나누어떨어지면 그날은 사이좋게 지낸다는 사실을 알아냈다.
i≠ji \ne ji=j이면서 iA+jBi^A + j^BiA+jB가 KKK로 나누어떨어지는 쌍 (i,j)(i, j)(i,j)가 몇 개인지 구하라. 쌍은 순서를 구분하므로 (1,2)(1, 2)(1,2)와 (2,1)(2, 1)(2,1)은 서로 다른 쌍이다. 쌍의 개수가 매우 클 수 있으므로 109+710^9+7109+7 (100000000710000000071000000007)로 나눈 나머지를 출력한다.
iii와 jjj는 양의 정수이므로 A=0A = 0A=0이면 iA=1i^A = 1iA=1이고, B=0B = 0B=0이면 jB=1j^B = 1jB=1이다.
첫째 줄에 테스트 케이스의 개수 TTT가 주어진다. 이어서 TTT개의 테스트 케이스가 주어진다. 각 테스트 케이스는 한 줄로 이루어지며, 앞에서 설명한 네 정수 AAA, BBB, NNN, KKK가 주어진다.
각 테스트 케이스마다 Case #x: y 형식으로 한 줄을 출력한다. x는 1부터 시작하는 테스트 케이스 번호이고, y는 구하는 답이다.
Case #x: y
x
y
예제의 첫 번째 테스트 케이스에서 가능한 쌍은 (1,2)(1, 2)(1,2), (1,5)(1, 5)(1,5), (2,1)(2, 1)(2,1), (2,4)(2, 4)(2,4), (4,2)(4, 2)(4,2), (4,5)(4, 5)(4,5), (5,1)(5, 1)(5,1), (5,4)(5, 4)(5,4)이다.
두 번째 테스트 케이스에서 가능한 쌍은 (1,2)(1, 2)(1,2), (1,3)(1, 3)(1,3), (4,1)(4, 1)(4,1)이다.
세 번째 테스트 케이스에서는 i≠ji \ne ji=j 조건 때문에 가능한 쌍이 없다.