만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

수의 집합 (Large)

시간 제한5초메모리 제한512 MB

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

보통10점 중 7점

유형
유니온 파인드, 정수론
정답자
아직 제출이 없습니다

문제

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

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

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

입력

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

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

제약

  • 1≤C≤1001 \le C \le 100
  • 1≤A≤B≤10121 \le A \le B \le 10^{12}
  • B≤A+1000000B \le A + 1000000
  • 2≤P≤B2 \le P \le B

출력

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

예제2

  1. 예제 1

    입력
    2
    10 20 5
    10 20 3
    
    예상 출력
    Case #1: 9
    Case #2: 7
    
  2. 예제 2

    입력
    3
    7 7 2
    1 2 2
    2 4 2
    
    예상 출력
    Case #1: 1
    Case #2: 2
    Case #3: 2