【Ahoi2005】【BZOJ1968】COMMON 约数研究(水题,乱搞,约数)
problem
- 给出一个数n
- 求“1的约数个数” + “2的约数个数” + …… + “n的约数个数”。
solution
- 不难发现:约数1出现的个数就是n/1(有n个数都是1的倍数),约数2出现的个数就是n/2。
- 所以其实我们直接把n/i累计起来就是答案了
codes
#include<cstdio>
int main(){
int n, ans=0;
scanf("%d", &n);
for(int i = 1; i <= n; i++)
ans+=n/i;
printf("%d\n", ans);
return 0;
}