(有种失踪人口回归的感觉)
(不过好像没有人注意到我这个蒟蒻)
好的不管它啦
最近学数论比较多,所以可能会有好多好多的数论题???(不存在的)
行吧上算法标签:
数论 数论 数论
首先显然它求的是Σψ(i)i∈(1,n)下面补充关于ψ(i)的百度百科知识(或许有些奇怪……):
行吧那个长得像裤子的东西是求积(和西格玛差不多吧??)
接下来讲一下原理:
我们可以反过来考虑,显然如果分别求1-n中每个数的正约数个数,我们会炸掉的(tle喽),所以我们就反向思维,对于每个数i,1-n中都会有i,2i,3i,4i,……[n/i]*i([n/i]向下取整)个不同的因数,那么1-n中为i的个数的数就为n/i(向下取整)个,依据此,我们可以写出循环:
for(int i=1;i<=n;i++) ans+=n/i;
依次判断1-n有几个因数……好像没表达清楚(不管了详情见信息学奥赛一本通提高篇p382.4)
附ac代码:
#include<iostream> using namespace std; int n,ans; int main() { cin>>n; for(int i=1;i<=n;i++) ans+=n/i; cout<<ans<<endl; }
end-