题目链接:https://www.luogu.org/problem/P3327题目描述
设d(x)为x的约数个数,给定N、M,求 ∑i=1N∑j=1Md(ij)\sumN_{i=1}\sumM_{j=1}d(ij)∑i=1N∑j=1Md(ij)
输入格式
输入文件包含多组测试数据。第一行,一个整数T,表示测试数据的组数。接下来的T行,每行两个整数N、M。
输出格式
T行,每行一个整数,表示你所求的答案。
输入输出样例
输入 #1
2
7 4
5 6
输出 #1
110
121
说明/提示
1<=N, M<=50000
1<=T<=50000
分析:
求 ∑ i = 1 N ∑ j = 1 M d ( i j ) 求\sum_{i=1}^N\sum_{j=1}^M{d(ij)} 求i=1∑Nj=1∑Md(ij)
对于d函数有个性质,在最上面题目链接页面中的解题报告中有它的证明,不过能力不够,不太理解,先记着吧
d ( i j ) = ∑ x ∣ i ∑ y ∣ j [ g c d ( x , y ) = 1 ] d(ij)=\sum_{x|i}\sum_{y|j}{[gcd(x,y)=1]} d(ij)=x∣i∑y∣j∑[gcd(x,y)=1]
注:[gcd(x,y)=1]表示gcd(x,y)等于1时值为1,其余情况为0
那么所求为
∑ i = 1 N ∑ j = 1 M ∑ x ∣ i ∑ y ∣ j [ g c d ( x , y ) = 1 ] \sum_{i=1}^N\sum_{j=1}^M{\sum_{x|i}\sum_{y|j}{[gcd(x,y)=1]}} i=1∑Nj=1∑Mx∣i∑y∣j∑[gcd(x,y)=1]
上式中,假如以x,y为自变量,i和j满足分别是x,y的倍数,对应的个数分别为 N x , M y \frac{N}{x},\frac{M}{y} xN,yM(注:像这种除法的,若没有特别说明,都表示向下取整),由此改变枚举顺序得
∑ x = 1 N ∑ y = 1 M [ g c d ( x , y ) = 1 ] ⋅ N x ⋅ M y \sum_{x=1}^N\sum_{y=1}^M{[gcd(x,y)=1]\cdot \frac{N}{x}\cdot \frac{M}{y} } x=1∑Ny=1∑M[gcd(x,y)=1]⋅xN⋅yM
定义f(n)函数,和g(n)函数:
f ( n ) : = ∑ x = 1 N ∑ y = 1 M [ g c d ( x , y ) = n ] ⋅ N x ⋅ M y g