#CF2063A. 最小互质区间

最小互质区间

题目描述

每个测试的时间限制:1 秒
内存限制:256 兆字节

今天,小约翰用他所有的积蓄买了一个区间。他想在这个区间上建一座房子。
一个由正整数构成的区间 [l,r][l, r] 被称为互质区间,如果 llrr 互质^*

一个互质区间 [l,r][l, r] 被称为最小互质区间,如果它不包含^\dagger 任何不等于它自身的互质区间。为了更好地理解这个定义,你可以参考注释。

给定一个正整数区间 [l,r][l, r],求它包含的最小互质区间的数量。

^* 两个整数 aabb 互质,当且仅当它们只有一个正公约数。例如,2244 不互质,因为它们都能被 2211 整除;而 7799 互质,因为它们唯一的正公约数是 11

^\dagger 区间 [l,r][l', r'] 被包含在区间 [l,r][l, r] 中,当且仅当 llrrl \le l' \le r' \le r

输入格式

每个测试点包含多个测试用例。第一行包含测试用例数 tt1t1001 \le t \le 100)。接下来每个测试用例一行,包含两个整数 llrr1lr1091 \le l \le r \le 10^9)。

输出格式

对于每个测试用例,输出一行,表示 [l,r][l, r] 中包含的最小互质区间的数量。

6
1 2
1 10
49 49
69 420
1 1
9982 44353
1
9
0
351
1
34371

注意
对于第一个测试用例,给定区间是 [1,2][1, 2]。包含在 [1,2][1, 2] 中的区间如下:

  • [1,1][1,1]:该区间是互质的,因为 1111 互质,并且它不包含任何其他互质区间。因此 [1,1][1,1] 是最小互质区间。
  • [1,2][1,2]:该区间是互质的。但是它包含了 [1,1][1,1],而 [1,1][1,1] 也是互质的,所以 [1,2][1,2] 不是最小互质区间。
  • [2,2][2,2]:该区间不是互质的,因为 2222 有两个正公约数:1122

因此,区间 [1,2][1,2] 包含 11 个最小互质区间。