素数筛多种方法(朴素法,埃氏筛,欧拉筛(线性筛),区间筛)1e11内的素数总数?
本文参照多位大佬关于素数筛的博客进行总结和完善。对于寻找素数,我们第一时间想到的便是二重循环暴力查找,通过循环中只判断到根号n可以优化一些,不过复杂度也达不到预期。数论中有一种时间复杂度O(nloglogn)的埃氏筛算法,而在一些数据范围达到1e7这样的题目中,也很难让人满意,于是便可使用欧拉筛法,也即时间复杂度只有 O(n)的线性筛法。文末附加大牛快速查找1e11范围内素数总数的代码。文章目录朴素法(暴力)——时间复杂度 O(n*sqrt(n))埃式筛(Eratosthenes)——时间复杂度O(nlo
原创
2020-07-31 23:39:23 ·
2137 阅读 ·
0 评论