题意
令(f(i))表示(i)的约数个数,求(Sigma^n_{i=1}f(i)).
做法
我们直接算每个数的贡献,问题可以转化成每个数在(1)到(n)中有多少个倍数,累加答案。
代码
#include<iostream>
using namespace std;
int main() {
int ans=0,n;
cin>>n;
for (int i=1;i<=n;++i) ans+=n/i;
cout<<ans<<endl;
}
令(f(i))表示(i)的约数个数,求(Sigma^n_{i=1}f(i)).
我们直接算每个数的贡献,问题可以转化成每个数在(1)到(n)中有多少个倍数,累加答案。
#include<iostream>
using namespace std;
int main() {
int ans=0,n;
cin>>n;
for (int i=1;i<=n;++i) ans+=n/i;
cout<<ans<<endl;
}