⌊ni⌋(0<i≤n)⌊ni⌋(0<i≤n)的不同取值不超过: 2n−−√2n种
令: ⌊ni⌋=x⌊ni⌋=x
那么: x⋅i≤n≤(x+1)⋅i−1x⋅i≤n≤(x+1)⋅i−1
得: ⌈n+1x+1⌉≤i≤⌊nx⌋⌈n+1x+1⌉≤i≤⌊nx⌋
pii cal(int n,int x)
{
int l=(n+x+1)/(x+1),r=n/x;
return mp(l,r);
}
枚举⌊ni⌋⌊ni⌋的所有取值复杂度: O(n−−√)O(n)
for(int i=1;i<=n;i=n/(n/i)+1)
// n/i
a∈[1,x]b∈[1,y]gcd(a,b)=1a∈[1,x]b∈[1,y]gcd(a,b)=1的个数
ll coprime(int x,int y)
{
ll res=0;int z=min(x,y);
for(int d=1;d<=z;)
{
int r=min(min(x/(x/d),y/(y/d)),z);
res+=1ll*(sum[r]-sum[d-1])*(x/d)*(y/d);
d=r+1;
}
return res;
}