题目描述
设 d(x) d ( x ) 为 x x 的约数个数,给定 、 M M ,求
输入输出格式
输入格式:
输入文件包含多组测试数据。第一行,一个整数T,表示测试数据的组数。接下来的T行,每行两个整数N、M。
输出格式:
T行,每行一个整数,表示你所求的答案。
输入输出样例
输入样例#1:
2
7 4
5 6
输出样例#1:
110
121
说明
1<=N, M<=50000
1<=T<=50000
题目分析
数论题对我这种智障来说就是要命的。这题我想了一会还是没有想出来。
某Cla口中的水题对蒟蒻我来说都是难题,所谓的好题就是我根本不会做的题。。。
本题必须用到的结论:
d(ij)=∑x|i∑y|j[(x,y)=1] d ( i j ) = ∑ x | i ∑ y | j [ ( x , y ) = 1 ]
证明很简单:
将一个数唯一分解为 pk11pk22pk33...pknn p 1 k 1 p 2 k 2 p 3 k 3 . . . p n k n ,则其约数个数为 (k1+1)(k2+1)(k3+1)...(kn+1) ( k 1 + 1 ) ( k 2 + 1 ) ( k 3 + 1 ) . . . ( k n + 1 ) 。因为对于任意 i≠j i ≠ j , (pi,pj)=1 ( p i , p j ) = 1 。
然后考虑一个质数 p p 对 的贡献。假设 i i 的质因数分解中有 个 p p , 的质因数分解中有 q q 个 ,那么对 d(