题解 P1403 【[AHOI2005]约数研究】
ouuan
2018-02-06 21:01:12
大概看了一下貌似没有这样筛的..如果有就有吧
```
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;
}
}
```
当然这样筛法就没意义了,本来筛法的好处就是可以求每个数的约数个数