⌊ni⌋(0<i≤n) ⌊ n i ⌋ ( 0 < i ≤ n ) 的不同取值不超过: 2n−−√ 2 n 种
令: ⌊ni⌋=x ⌊ n i ⌋ = x
那么: x⋅i≤n≤(x+1)⋅i−1 x ⋅ i ≤ n ≤ ( x + 1 ) ⋅ i − 1
得: ⌈n+1x+1⌉≤i≤⌊nx⌋ ⌈ n + 1 x + 1 ⌉ ≤ i ≤ ⌊ n x ⌋
pii cal(int n,int x)
{
int l=(n+x+1)/(x+1),r=n/x;
return mp(l,r);
}
枚举 ⌊ni⌋ ⌊ n i ⌋ 的所有取值 复杂度: 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)=1 a ∈ [ 1 , x ] b ∈ [ 1 , y ] g c d ( 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;
}