整数分块这样的方法使用与计算n以内的n/i的和;

for example
以n = 10为例子

我们发现

这样我们就把10的计算转化为只需要5次的计算
在我们的计算下面,在理论上是可以logn的计算的

ll res = 0;
for(int l = 1, r; l <= n; l = r + 1)
{
r = n / (n / l);//定义右边界
res += (r - l + 1) * (n / l);
}
本文介绍了如何使用整数分块的方法来优化计算n以内n/i的和的过程,通过这种方式将原本的计算次数从n减少到logn。在示例中,以n=10为例,展示了如何通过定义左、右边界并更新结果的方式,实现算法的高效计算。这种方法对于大数据量的计算具有显著的效率提升。
整数分块这样的方法使用与计算n以内的n/i的和;

for example
以n = 10为例子

我们发现

这样我们就把10的计算转化为只需要5次的计算
在我们的计算下面,在理论上是可以logn的计算的

ll res = 0;
for(int l = 1, r; l <= n; l = r + 1)
{
r = n / (n / l);//定义右边界
res += (r - l + 1) * (n / l);
}
3997
694
482
293