题解 P1403 【[AHOI2005]约数研究】

ouuan

2018-02-06 21:01:12

Solution

大概看了一下貌似没有这样筛的..如果有就有吧 ``` for (i=1;i*i<=n;++i) { ++a[i*i]; for (j=i*i+i;j<=n;j+=i) { a[j]+=2; } } ``` 利用了a的约数个数=小于√a的约数+int(a是完全平方数) 完整代码就不给了,要是只做这道题可以用求n/i的积,其它题解都讲过了,也可以改成如下代码: ``` for (i=1;i*i<=n;++i) { ++ans; for (j=i*i+i;j<=n;j+=i) { ans+=2; } } ``` 当然这样筛法就没意义了,本来筛法的好处就是可以求每个数的约数个数