埃式筛法

N = 10000000  # 求10e7以内的素数个数
p = [False] * (N + 1)
pNum = 0
for i in range(2, N):if p[i] is False:pNum += 1for j in range(i * 2, N + 1, i):p[j] = True
print(pNum)

埃式筛法优化

N = 10000000  # 求10e7以内的素数个数
p = [False] * (N + 1)
pNum = 0
for i in range(2, N):if p[i] is False:pNum += 1mul = 1 if i == 2 else 2  # 排除偶数for j in range(i * i, N + 1, i * mul):  # 从i*i开始p[j] = True
print(pNum)

欧拉筛法

N = 10000000  # 求10e7以内的素数个数
prime = [0] * (664580)  # 通过计算知有664579个
p = [False] * (N + 1)
pNum = 0
i = 2
while i <= N:if p[i] is False:prime[pNum] = ipNum += 1j = 0while (j < pNum and i * prime[j] <= N):p[i * prime[j]] = Trueif (i % prime[j] == 0):breakj += 1i += 1
print(pNum)

素数筛法(python实现)相关推荐

  1. 埃拉托色尼素数筛法(转)

    原文:http://blog.csdn.net/ltyqljhwcm/article/details/52835805 1.算法原理 埃拉托色尼素数筛法是有古希腊数学家发明的一种快速求解范围内所有的素 ...

  2. P1865 A % B Problem (素数筛法,前缀和)

    题目描述 区间质数个数 输入输出格式 输入格式: 一行两个整数 询问次数n,范围m 接下来n行,每行两个整数 l,r 表示区间 输出格式: 对于每次询问输出个数 t,如l或r∉[1,m]输出 Cros ...

  3. 斐波那契数列的3种求法及几种素数筛法

    递推法 #include<stdio.h> long long sum[40];//也可以不用开数组 int main() {int n;scanf("%d",& ...

  4. P1217 [USACO1.5]回文质数 Prime Palindromes(素数筛法/打表)

    P1217 [USACO1.5]回文质数 Prime Palindromes(素数筛法/打表) 一:埃氏筛(时间复杂度--nloglogn) 重点:一个数x是合数,则它的倍数也是合数 //用埃氏筛生成 ...

  5. 欧拉筛法原理C语言,素数筛法

    素数筛 自古以来,素数就是一个有众多人研究的东西,而素数筛也是这些研究成果中的一个 素数筛是用来快速生成一个素数表的东西,比起生成素数的幼稚算法及其优化的方法,素数筛的速度更快,但是也常常会出现很多奇 ...

  6. C语言:素数筛法与分解素因数

    一.素数筛法 素数筛法是关于求小于某个大数(正整数)的所有素数的算法,首先有理论:任何整数n≥2都可以分解成若干质数的乘积,即n=p1p2···pr. 用筛法求素数的基本思想是:把从1开始的.某一范围 ...

  7. 线性筛法求素数c语言,[算法]素数筛法(埃氏筛法线性筛法)

    一.素数筛的定义 给定一个整数n,求出[1,n]之间的所有质数(素数),这样的问题为素数筛(素数的筛选问题). 二.埃氏筛法(Eratosthenes筛法) 埃氏筛法又叫做Eratosthenes筛法 ...

  8. python求合数的所有因子,0是素数吗(python求一个数的因子)

    相信很多人对于0是素数吗(python求一个数的因子)并不是非常的了解,因此小编在这里为您详解的讲解一下相关信息! 0和1不是质数,因为质数的定义是:在大于1的自然数中,除了1和它本身以外不再有其他因 ...

  9. 素数筛法(传统普通、朴素筛法、埃式筛法、欧拉筛法(线性筛))

    素数筛法(普通.朴素筛法.埃式筛法.欧拉筛法) 1.题目 2.分析 3.代码 传统普通 朴素筛法 朴素筛法(6.14) 埃式筛法 埃式筛法(6.14) 欧拉筛法(线性筛) 欧拉筛法(线性筛 6.14) ...

  10. 素数判定(素数筛法)(欧拉)

    这里主要说一下 素数筛法,该方法可以快速的选取出1~N数字中的所有素数.时间复杂度 远小于O(N*sqrt(N)) 方法为:从2开始,往后所有素数的倍数都不是素数.最后剩下的数都是素数. 再说说欧拉公 ...

最新文章

  1. 36.两个链表的第一个公共结点——剑指offer
  2. 如何监控mysql数据库时间_如何监控MySQL数据库主从之间的延时
  3. 处理时间_4_计算时间列所在的周的序号
  4. JS实现sleep()方法
  5. iOS开发中手势处理简介(二)
  6. java 8 新特性之日期-时间 API
  7. Flask开发成语接龙游戏,闲来无事手机玩玩自己写的游戏吧!
  8. droid sans字体_2019年免费可商用字体大全(附打包下载)
  9. 关闭后天 树莓派_树莓派|如何打开和关闭树莓派(绝对新手)
  10. 乌鲁木齐高新区大数据产业首个惠农项目落地
  11. 玩转基金(3)买卖基金
  12. 快速突破面试算法(内含从简到难的高频题型目录及每题的详解,已经归类整理好并外带博主的免费答疑)
  13. linux服务器上已安装R 用户下载R包,服务器R语言包下载、R包离线安装
  14. 机器学习_周志华_西瓜书_学习笔记_第16章--强化学习
  15. npy文件转换为txt文件
  16. 《C++ primer 》 猎豹网校 函数模板 2018/10/9
  17. 欧拉回路 - 铲雪车 - AcWing 1123
  18. java取北京时间_在java中怎么获取北京时间
  19. 关于gvim的高级应用
  20. ps 如何使用钢笔工具抠图

热门文章

  1. reactjs安装并在脚手架中使用 material-ui/core
  2. 管家婆云辉煌的打印样式设置
  3. mt4接入python_mt4 调用 api
  4. cad被管理员阻止_CAD注册机无法以管理员身份输入的解决方案
  5. 系统建模之状态图,活动图
  6. get请求和post请求参数中文乱码的解决办法
  7. 预测控制(一):MPC轨迹跟踪
  8. 西门子阀门定位器6DR5011-0NG11-0AA0
  9. 抖音几个赞才能上热门 视频去水印
  10. 编写程序:实现输出100以内质数的功能