수의 집합 (Large)

구간 안의 수 중 P 이상인 소인수를 공유하는 수를 합치고 남는 집합 개수를 구합니다.

보통7유니온 파인드정수론아직 제출이 없습니다시간 제한5초메모리 제한512 MB

문제

연속한 정수를 다음 절차에 따라 여러 집합으로 나눈다.

먼저 대상이 되는 정수 구간과 정수 PP가 주어진다. 처음에는 구간의 정수마다 그 정수 하나만 담은 집합이 따로 있다. 이제 구간에 속한 두 정수의 모든 쌍을 살펴보면서, 두 정수에 공통인 PP 이상의 소인수가 있으면 두 정수가 속한 집합을 하나로 합친다.

이 절차가 끝났을 때 집합은 몇 개인가?

입력

첫 줄에 테스트 케이스의 수 CC가 주어진다.

각 테스트 케이스는 한 줄이며, 공백으로 구분된 세 정수 AA, BB, PP가 주어진다. AABB는 각각 구간의 첫 정수와 마지막 정수이고, PP는 위에서 설명한 수다.

제약

  • 1C1001 \le C \le 100
  • 1AB10121 \le A \le B \le 10^{12}
  • BA+1000000B \le A + 1000000
  • 2PB2 \le P \le B

출력

각 테스트 케이스마다 Case #X: Y 형식의 한 줄을 출력한다. XX는 1부터 시작하는 테스트 케이스 번호이고, YY는 집합의 개수다.