题目链接:https://www.luogu.org/problemnew/show/P1403
题意:f[i]
表示i
的约数个数,比如f[4]=3即(1,2,4)
,要求的是f[i]
的和.
思路:这是一个数学题,f[i]=floor(n/i)
故代码如下:
ps:后面有时间会加上一些其他解法.
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
using namespace std;
int main(){
int n;
scanf("%d",&n);
long long sum=0;//保险起见用long long
for(int i=1;i<=n;i++){
sum+=floor(n/i);
}
printf("%lld\n",sum);
return 0;
}
总结:oeis真是个好东西.