求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-21 00:37
已编辑
门头沟学院 C++
小浪_Coding:你问别人,本来就是有求于人,别人肯定没有义务免费回答你丫, 有点流量每天私信可能都十几,几十条的,大家都有工作和自己的事情, 付费也是正常的, 就像你请别人搭把手, 总得给人家买瓶水喝吧
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务