「题解」洛谷 P1403 [AHOI2005]约数研究
作者:互联网
题目
简化题意
\(f(x)\) 表示 \(\sum\limits_{i = 1} ^ {x} [i\mid x]\) 求 \(\sum\limits_{i = 1}^{n} f(i)\)。
思路
整除分块。
一个数 \(i\) 在 \(1 \sim n\) 中它的倍数一共有 \(\left\lfloor \dfrac{n}{i} \right\rfloor\) 个,即 \(i\) 对答案的贡献为 \(\left\lfloor \dfrac{n}{i} \right\rfloor\)。
考虑枚举约数,\(\sum\limits_{i = 1} ^ {n} \left\lfloor \dfrac{n}{i} \right\rfloor\) 就是答案。
Code
#include <cstdio>
#include <cstring>
#include <string>
#include <iostream>
#include <algorithm>
int n, ans;
int main() {
scanf("%d", &n);
for (int i = 1, j; i <= n; i = j + 1) {
j = n / (n / i);
ans += (j - i + 1) * (n / i);
}
std::cout << ans << '\n';
return 0;
}
标签:约数,right,AHOI2005,int,题解,sum,rfloor,include 来源: https://www.cnblogs.com/poi-bolg-poi/p/13620632.html