题目描述
给你两个整数 l 和 r(1≤l≤r≤106),要求在 l 到 r 范围内(即整数 l,l+1,…,r 中)选出尽可能多的数,满足任意两个选出的数之间都是倍数关系。
也就是说,你需要在从 l 到 r 范围内的数中选出尽可能多的数,从这些选出来的数中任取两个整数 x 和 y,均满足:
x 能被 y 整除,或者 y 能够被 x 整除。
同时你还需要计算出:有多少种不同的选择方案,能满足选出来的数最多且都是倍数关系。由于满足条件的方案数可能很多,所以你只需要输出方案数模 998244353 的结果即可。
输入格式
输入包含多组测试数据。
输入的第一行包含一个整数 t(1≤t≤104),表示测试数据组数。
接下来每组测试数据占一行,包含两个整数 l 和 r,以一个空格分隔(1≤l≤r≤106)。
输出格式
对于每组测试数据,输出一行,包含两个整数,以一个空格分隔。其中,第一个整数表示能够选出的彼此之间都是倍数关系的数的最大个数,第二个整数表示选出最多倍数关系的数的不同方案数模 998244353 的结果。
4
3 11
13 37
1 22
4 100
2 4
2 6
5 1
5 7
说明/提示
样例解释
第1组测试数据:
最多能选 2 个数,对应 4 种不同的方案:
- {3,6}
- {3,9}
- {4,8}
- {5,10}
第2组测试数据:
最多能选 2 个数,对应 6 种不同的方案:
- {13,26}
- {14,28}
- {15,30}
- {16,32}
- {17,34}
- {18,36}
第3组测试数据:
最多能选 5 个数,对应 1 种不同的方案:
- {1,2,4,8,16}
第4组测试数据:
最多能选 5 个数,对应 7 种不同的方案:
- {4,8,16,32,64}
- {4,12,24,48,96}
- {4,8,24,48,96}
- {4,8,16,48,96}
- {4,8,16,32,96}
- {5,10,20,40,80}
- {6,12,24,48,96}
数据规模与约定
- 对于 10% 的数据,t≤10;r≤10
- 对于 30% 的数据,t≤100;r≤1000
- 对于 50% 的数据,t≤1000;r≤105
- 对于 100% 的数据,1≤t≤104;1≤l≤r≤106