LightOJ1245 Harmonic Number (II)
标签
- 整除分块
前言
- 我的csdn和博客园是同步的,欢迎来访danzh-博客园~
简明题意
- 求(n<=max_int)
\[\sum_{i=1}^n[\frac ni]\]
思路
- 。。。整出分块的板子题。不会的去学一下整除分块
注意事项
- 无
总结
- 无
AC代码
#include
void solve()
{
int t;
scanf("%d", &t);
for (int i = 1; i <= t; i++)
{
int n;
scanf("%d", &n);
long long ans = 0;
int l = 1;
while (l <= n)
{
int r = n / (n / l);
ans += (r - l + 1) * (n / l);
if (l == 1ll << 31 - 1)
break;
l = r + 1;
}
printf("Case %d: %lld\n", i, ans);
}
}
int main()
{
freopen("Testin.txt", "r", stdin);
solve();
return 0;
}