数论分块

int main()
{
        ll l,r;
        ll n,sum=0;
        scanf("%lld",&n);
        //左端点l,右端点r;
        for(l=1,r=0;l<n;l=r+1)
        {
            r=n/(n/l);
            sum+=(r-l+1)*(n/l);
        }
        printf("%lld\n",sum);
}

 

posted @ 2021-08-25 18:42  废柴废柴少女  阅读(27)  评论(0)    收藏  举报