数论算法为何成为LeetCode的隐藏Boss从素数筛到快速幂的完整通关指南

假设你需要统计小于1000万的整数中有多少个素数。最直观的想法是:对每个数逐一判断是否为素数——时间复杂度 $O(n\sqrt{n})$,当数据量达到千万级别时,程序可能需要运行数秒甚至数分钟。但如果换一个思路:用一个布尔数组标记所有合数,剩下的就是素数——时间复杂度骤降至 $O(n \log \log n)$,千万级数据量下只需几十毫秒。 ...

9 min · 4238 words