bzoj 1968

倘若要从一个数找它的约数,那么是没有办法的。

但是我们可以倒着思考,从一个数找它的倍数。

可以发现n中有n/2个2的倍数,有n/3个3的倍数,于是直接累加起来便是答案。

只需要输出∑N/i(i<=N)。

#include<cstdio>
int main(){
    int n,ans=0; scanf("%d",&n);
    for(int i=1;i<=n;i+=1) ans+=n/i;
    printf("%d",ans);
    return 0;
}

 

posted @ 2017-09-25 15:51  失忆的旅行者  阅读(184)  评论(0编辑  收藏  举报