셜록과 왓슨의 헬스장 비밀 (Large)
시간 제한5초메모리 제한512 MB
1 이상 N 이하이고 서로 다른 i, j에 대해 i^A + j^B가 K로 나누어떨어지는 순서쌍의 개수를 세어 10^9+7로 나눈 값을 구한다.
문제
왓슨과 셜록은 같이 운동하는 헬스장 친구다.
헬스 트레이너는 두 사람에게 세 정수 , , 을 주고, 이하의 서로 다른 양의 정수 와 를 고르라고 했다. 왓슨은 매일 새싹을 정확히 개 먹어야 하고, 셜록은 매일 정확히 개 먹어야 한다.
왓슨과 셜록은 어느 날 두 사람이 먹은 새싹 개수의 합이 어떤 정수 로 나누어떨어지면 그날은 사이좋게 지낸다는 사실을 알아냈다.
이면서 가 로 나누어떨어지는 쌍 가 몇 개인지 구하라. 쌍은 순서를 구분하므로 와 은 서로 다른 쌍이다. 쌍의 개수가 매우 클 수 있으므로 ()로 나눈 나머지를 출력한다.
와 는 양의 정수이므로 이면 이고, 이면 이다.
입력
첫째 줄에 테스트 케이스의 개수 가 주어진다. 이어서 개의 테스트 케이스가 주어진다. 각 테스트 케이스는 한 줄로 이루어지며, 앞에서 설명한 네 정수 , , , 가 주어진다.
출력
각 테스트 케이스마다 Case #x: y 형식으로 한 줄을 출력한다. x는 1부터 시작하는 테스트 케이스 번호이고, y는 구하는 답이다.
제한
힌트
예제의 첫 번째 테스트 케이스에서 가능한 쌍은 , , , , , , , 이다.
두 번째 테스트 케이스에서 가능한 쌍은 , , 이다.
세 번째 테스트 케이스에서는 조건 때문에 가능한 쌍이 없다.