【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;
}
posted @ 2018-05-28 12:41  gwj1139177410  阅读(112)  评论(0编辑  收藏  举报
选择