loj#P2978. 「THUSCH 2017」杜老师

「THUSCH 2017」杜老师

题目描述

杜老师可是要打 ++\infty 年 World Final 的男人,虽然规则不允许,但是可以改啊!

但是今年 WF 跟 THUSC 的时间这么近,所以他造了一个 idea 就扔下不管了……

给定 L,RL,R,求从 LLRR 的这 RL+1R-L+1 个数中能选出多少个不同的子集,满足子集中所有的数的乘积是一个完全平方数。特别地,空集也算一种选法,定义其乘积为 11

由于杜老师忙于跟陈老师和鏼老师一起打 ACM 竞赛,所以,你能帮帮杜老师写写标算吗?

输入格式

从标准输入读入数据。

每个测试点包含多组测试数据。

输入第一行包含一个正整数 T(1T100)T(1\le T\le 100),表示测试数据组数。

接下来 TT 行,第 i+1i+1 行两个正整数 Li,RiL_i,R_i 表示第 ii 组测试数据的 L,RL,R,保证 1LiRi1071\le L_i\le R_i\le 10^{7}

输出格式

输出到标准输出。

输出 TT 行,每行一个非负整数,表示一共可以选出多少个满足条件的子集,答案对 998244353998244353 取模。

3
1 8
12 24
1 1000000
16
16
947158782
6
3761870 4957871
2262774 4279409
3027437 5896884
3884310 5021632
3373244 5464739
5063504 5368121
953622420
551347610
583188135
582472626
190680894
268824018

数据范围与提示

测试点 RiR_i TT i=1TRiLi+1\sum_{i=1}^T R_i-L_i+1 特殊约束
1, 2 30\le 30 10\le 10 103\le 10^{3} 无特殊约束
3 102\le 10^{2} 保证答案不超过 5×1065 \times 10^{6}
4 无特殊约束
5, 6 103\le 10^{3} RiLi22R_i-L_i\le 22
7, 8 保证答案不超过 2×1062 \times 10^{6}
9, 10 5,000\le 5,000 无特殊约束
11, 12 106\le 10^{6} 107\le 10^{7} RiLi999,990R_i-L_i\ge 999,990
13, 14 无特殊约束
15 107\le 10^{7} 100\le 100
16 2×107\le 2 \times 10^{7}
17 3×107\le 3 \times 10^{7}
18 4×107\le 4 \times 10^{7}
19 5×107\le 5 \times 10^{7}
20 6×107\le 6 \times 10^{7}