N≤106,Ai≤106N\le 10^6,A_i\le 10^6N≤106,Ai ≤106 注意到这个,朴素的 O(nAi)O(nA_i)O(nAi ) 方法肯定不能过。
下意识的想到筛法,于是就打了一个。
便可以优化成 O(nAilnn)O(\frac{nA_i}{\ln n})O(lnnnAi ) 的算法,但这还不够。
注意到:对于一个数 nnn 它最多只有一个大于 n\sqrt nn 的质因子
于是,时间复杂度可以优化成 O(nAilnn)O(\frac{n\sqrt A_i}{\ln n})O(lnnnA i ) 。
最多运行次数在 1e6∗997/6.907≈1.4e81e6*997/6.907\approx 1.4e81e6∗997/6.907≈1.4e8 ,加上判断(剪枝)可以勉强跑过。
code:code:code: