最近好多人都在搞模板,跟风一下 long long qiu(long long n) { long long res=0; long long t=sqrt(double(n)); for(long long i=1; i<=t; i++) res+=(n/i); return 2*res-t*t; } 算是比较完整的一个求和公式 题目传送口1 题目传送口2 都是类似题目,求因数个数和 思想就是,先对于n==1,2,4,16这种sqrt(n)特殊的情况下,这时×2就是多算了一遍,这种情况有sqrt种,对于在sqrt前的sqrt-1个数字,也会多算一遍,所以减去sqrt*sqrt