可以根据枚举和计数平滑整数作者:D.J.伯恩斯坦。
我们会数数字,这样$\text{rad}(n)\mid r$,因为$$\#\{n\midn\leqslatex,\text{rad}$$
让$r=p_1p_2\cdots p_k$.按照纸面符号,让美元(x,S)$--是一组数字,它们是不同元素的乘积美元$和是$\leq斜面x$、和$\Psi(x,S)=\lvert P(x,S)\rvert$.
显然,您正在寻找$\Psi(x,S)$,其中$S=\{p_i^{2^t}\midt\in\mathbb{Z}\}\cap[1,x]$.
你可以列举美元(x,S)$直接由算法2在线性的结果集时间,但它可以很大。你也可以使用算法3,但我建议使用不同的计数方法$\Psi(x,S)$在里面$O(\Psi(\sqrt{x},S))$时间。
首先,列举$P(\sqrt{x},S)$在里面$O(\Psi(\sqrt{x},S))$时间使用算法2。
然后介绍$f(n,i)$--有根号的数字$p_1\cdot p_i$和小于或等于亿美元$。可能会看到明显的复发$f(n,i)=\sum\limits_{t=0}^\infty f\left(\Bigl\lfloor\frac{n}{p_i^t}\Bigr\rfloor,i-1\right)$.
因为$\lfloor\frac{\lfloor \frac{x}{a}\rfloor}{b}\rffloor=\floor\frac{x}}{ab}\rfooor$,我们需要计算的唯一状态是形式$\lfloor\压裂{x}{a}\rfloor$.但如果$\lfloor\frac{x}{a}\rfloor<\sqrt{x}$我们可以计算$f美元$直接无重复,因为之前的所有数字$\sqrt{x}$已枚举。也是每个州$\lfloor\frac{x}{a}\rfloor>\sqrt{x}$对应于一个数字$a<\sqrt{x}$具有$\text{rad}(a)\mid r$,所以有$O(\Psi(\sqrt{x},S))$这样的状态。
也就是说,你可以计算$\Psi(x,S)=f\left(\lfloor x \rfloor,k\right)$在期望的时间内使用递归和预先计算的数字,可能由于解释不准确而产生一些对数因子。
论文中的算法3假装有效$O(\sqrt{\Psi(x,S)})$,但它需要适当的分区美元$,它的存在是任意的美元$这是一个很难回答的问题。从晶格参数$\Psi(x,S)\sim\frac{1}{k!}\prod\limits_{i=1}^{k}\frac}\log x}{\log p}$用于固定美元$和$x\到\英寸$,所以一般来说$\sqrt{\Psi(x,S)}\ll\Psi$作为$x\到\英寸$.
但事实上证明这种复杂性是困难的$\Psi(x,S)$很粗糙(自己试试看$x\约10^{18}$对一些人来说美元$),所以在实践中,我的方法应该更好。