写了那么久的博客,始于Python爬虫,目前专于Java学习,终于有了属于自己的小窝,欢迎各位访问我的个人网站,未来我们一起交流进步。

质数又称素数。指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数。素数在数论中有着很重要的地位。比 1 大但不是素数的数称为合数。1 和 0 既非素数也非合数,2 是素数。

1.判断是否是素数:

import timeit
from math import sqrtdef isPrimes1(n):if n <= 1:return Falsefor i in range(2, int(sqrt(n) + 1)):if n % i == 0:return Falsereturn Truedef isPrimes2(n):if n > 1:if n == 2:return Trueif n % 2 == 0:return Falsefor x in range(3, int(sqrt(n) + 1), 2):if n % x == 0:return Falsereturn Truereturn Falseprint(timeit.timeit("isPrimes1(100)", setup="from chapter01 import isPrimes1", number=10000))print(timeit.timeit("isPrimes2(100)", setup="from chapter01 import isPrimes2", number=10000))

判断执行时间:

0.00563765699999999
0.001561703999999997

后一种方法将除 2 之外的偶数排除,大大减少了执行时间。

2.求 n 以内的素数

import timeit
from math import sqrt
import copydef listPrimes1(n):"""初始所有一个n维数组 res 表示数都为素数。从3开始将3的奇数倍标记成False,即不是素数。之后对每一个素数此行上一步操作这里我们不用管偶数倍,因为我们最后判定时默认所有偶数不是素数"""if n < 3:if n == 2:return [2]return Noneres = [True] * nfor i in range(3, int(n ** 0.5) + 1, 2):res[i * i::2 * i] = [False] * ((n - i * i - 1) // (2 * i) + 1)return [2] + [i for i in range(3, n, 2) if res[i]]def listPrimes2(n):'''计算n之内的素数:param n::return:'''if n < 3:if n == 2:return [2]return Nonenum_list = [x for x in range(2, n) if x%2 != 0]new_list = copy.copy(num_list)# new_list = []for i in num_list:# new_list.append(i)for d in range(3, int(sqrt(i)) + 1,2):if i%d == 0:new_list.remove(i)breakreturn [2] + new_listdef listPrimes3(n):'''计算n之内的素数:param n::return:'''if n < 3:if n == 2:return [2]return Nonereturn [2] + [p for p in range(2, n) if p %2 != 0 and 0 not in [p % d for d in range(2, int(sqrt(p)) + 1)]]print(timeit.timeit("listPrimes1(100)", setup="from chapter01 import listPrimes1",number=100))
print(timeit.timeit("listPrimes2(100)", setup="from chapter01 import listPrimes2", number=100))
print(timeit.timeit("listPrimes3(100)", setup="from chapter01 import listPrimes3", number=100))

整理得到三种实现方法,其中第一种方法执行时间最短。

0.000947919999999991
0.003774201000000005
0.004751936999999984

3.求 m 到 n 之间的素数

def mnPrimes1(m,n):if m == 1:num_list = [2] + [p for p in range(2, n) if p % 2 != 0 and 0 not in [p % d for d in range(2, int(sqrt(p)) + 1)]]if m >= 2:num_list = [p for p in range(m, n) if p % 2 != 0 and 0 not in [p % d for d in range(2, int(sqrt(p)) + 1)]]return num_listdef mnPrimes2(m,n):num_list = [x for x in range(m, n) if x % 2 != 0 and x != 1]new_list = copy.copy(num_list)for i in num_list:for d in range(3, int(sqrt(i)) + 1, 2):if i % d == 0:new_list.remove(i)breakif m == 2:new_list = [2] + new_listreturn new_list

Python 判断素数(质数)的方法讲解相关推荐

  1. python判断素数程序_使用面向对象方法检查素数的Python程序

    python判断素数程序 This program will check whether a given number is Prime or Not, in this program we will ...

  2. Python判断素数(质数)——循换结构、控制及else循环扩展模式的实践

    一.问题:Python判断素数(质数) 获得输入正整数 N,判断 N 是否为质数,如果是则输出 True,否则输出 False.不考虑输入异常. 我的答案: #质数定义为在大于1的自然数N = eva ...

  3. python判断素数程序_Python程序检查素数

    python判断素数程序 什么是质数? (What is a prime number?) A prime number is a natural number that is greater tha ...

  4. php判断网页编码,python判断网页编码的方法

    在web开发的时候我们经常会遇到网页抓取和分析,各种语言都可以完成这个功能.我喜欢用python实现,因为python提供了很多成熟的模块,可以很方便的实现网页抓取. 但是在抓取过程中会遇到编码的问题 ...

  5. python判断素数的函数_使用Python判断质数(素数)的简单方法讲解

    质数又称素数.指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数.素数在数论中有着很重要的地位.比1大但不是素数的数称为合数.1和0既非素数也非合数.质数是与合数相对立的两个概念 ...

  6. python 素数库_使用Python判断质数(素数)的简单方法讲解

    质数又称素数.指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数.素数在数论中有着很重要的地位.比1大但不是素数的数称为合数.1和0既非素数也非合数.质数是与合数相对立的两个概念 ...

  7. python中素数的求法_使用Python判断质数(素数)的简单方法讲解

    质数又称素数.指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数.素数在数论中有着很重要的地位.比1大但不是素数的数称为合数.1和0既非素数也非合数.质数是与合数相对立的两个概念 ...

  8. python判断质数_使用Python语言判断质数(素数)的简单方法讲解

    本文主要向大家介绍了使用Python语言判断质数(素数)的简单方法,通过具体的实例让大家了解,希望对大家学习Python语言有所帮助. 质数又称素数.指在一个大于1的自然数中,除了1和此整数自身外,不 ...

  9. python判断素数的方法简书_判断素数

    素数的定义 素数:又称质数.是大于1自然数中的除了自身和1以外不能别其他数整除的数字. 第一种方法 利用这个素数的定义,我们可以得出第一种判断素数的方法: int isPrime1(int n) { ...

  10. python判断素数程序_python素数判断

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 质数(prime number),又称素数,指在大于1的自然数中,除了1和该数自 ...

最新文章

  1. 【线上分享】云游戏面对低延迟挑战的实践
  2. 使用Spring Security 5进行密码编码器迁移
  3. (70)Verilog HDL测试激励:复位激励2
  4. Springmvc集成CXF请看教程二
  5. 白板推导系列Pytorch-隐马尔可夫模型-解码问题
  6. promise的理解和使用-尚硅谷教程笔记
  7. 启动计算机键盘没反应,为什么键盘没反应了 键盘没反应原因分析及解决方法...
  8. 使用ImageIO压缩图片
  9. 【AI参赛经验】汉字书法识别入门—by:真的学不会
  10. Java验证码图片工具类
  11. LeetCode695. 岛屿的最大面积———海岛
  12. 设计模式 - 创建型模式_原型模式
  13. 段码液晶屏笔段电压范围_LCD段码(笔段)液晶显示屏和点阵液晶显示屏
  14. Android笔记总结
  15. windows8 文件属性没有“安全”选项卡
  16. 百度快照被劫持 标题描述被篡改的处理过程
  17. 用Java Swing设计Email邮箱地址注册的图形用户界面程序
  18. 基于springboot的智慧物业管理系统的设计与实现(前后端分离)
  19. 推荐个将其他文档转为pdf的软件:Nitro PDF Creator
  20. mysql数据库操作命令笔记

热门文章

  1. html透明度从零到1,CSS过渡不透明度仅从0到1,或其他过渡效果
  2. Flutter Opacity 不透明度
  3. 原创nio socket mina+javascript+flash实现commet长连接网页聊天室
  4. w ndows十空格键怎么按,电脑键盘空格键失灵不能用如何修复
  5. Excel怎么设置下拉选择项
  6. 学个痛快,清华大学网上课程免费开放!知网免费下载!CSDN送课程!
  7. python写入txt不覆盖_python不能覆盖文件内容如何解决
  8. HNOI 2009 图的同构记数 题解
  9. 奥创手机群控安装到魅蓝3的流程
  10. 看图写英语作文关于计算机,终于懂了看图写英语作文模板