来源 洛谷p1403
输入
正整数n
输出
从1到n每个正整数的约数个数之和
要求
- 对于 20%20% 的数据,N≤5000;
- 对于 100%100% 的数据,1≤N≤10^6。
参考代码:
1.利用1到n中含约数 i 的个数有 n/i 个求解。时间复杂度为O(N),最高可算到1*10e6。
#include<cstdio>
int main(){
int n,ans=0;
scanf("%d",n);
for(int i=1,j;i<=n;i=j+1){
j=n/(n/j);
ans+=(n/i)*(j-i+1);
}
printf("%d",ans);
return 0;
}