求1-n所有数的因数个数之和

int r;
for(int l=1;l<=n;l=r+1)
r=n/(n/l);
ans+=(r-l+1)*(n/l);

把所有出现次数相同的因数放在一起。所以才有r=n/(n/l),是为了直接取到所有次数相同的因数,r-l+1,r+1是第一个次数不同的因数所以-l。所以循环是l=r+1。

全部评论

相关推荐

点赞 评论 收藏
分享
预计下个星期就能开奖吧,哪位老哥来给个准信
华孝子爱信等:对接人上周说的是这周
投递华为等公司10个岗位 >
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务