首页 > 其他 > 详细

[nowcoder]因数个数和

时间:2018-08-25 11:10:00      阅读:161      评论:0      收藏:0      [点我收藏+]

链接:https://www.nowcoder.com/acm/contest/158/A

考虑每个数对答案的贡献,所以答案就是$\sum_{i=1}^{n}{\lfloor\frac{n}{i}\rfloor}$

整除分块搞起来

代码:

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #define ll long long
 5 using namespace std;
 6 int q;
 7 ll n,ans;
 8 int main()
 9 {
10     scanf("%d",&q);
11     while(q--)
12     {
13         scanf("%lld",&n);
14         ans=0;
15         for(ll l=1,r;l<=n;l=r+1) {r=n/(n/l);ans+=(r-l+1)*(n/l);}
16         printf("%lld\n",ans);
17     }
18     return 0;
19 }

 

[nowcoder]因数个数和

原文:https://www.cnblogs.com/Slrslr/p/9532830.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!