埃氏筛法和欧拉筛法都是使用筛法思想生成素数表的算法,欧拉筛法的时间复杂度更低。
埃氏筛法:从2开始标记倍数为合数,O(n log log n)。线性筛(欧拉筛):每个合数只被最小质因子标记一次,O(n)。线性筛效率更高。
分析复杂度时注意外层循环和内层循环的关联。例如内外两层都到n的循环不一定是O(n²),要看内层是否每次都在缩小。
【考点】时间复杂度|埃氏筛法|欧拉筛法
本题考查《GESP 七级 C++ 算法》模块中"素数筛法"考点。命题人专门卡住"欧拉筛法复杂度"——七级考生普遍只会写埃氏筛 O(n log log n),却误以为所有筛法都是 O(n),这道题就是挖空"不会区分两种筛法效率差异"的考生。