质数又称素数。指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数。素数在数论中有着很重要的地位。比1大但不是素数的数称为合数。1和0既非素数也非合数。质数是与合数相对立的两个概念,二者构成了数论当中最基础的定义之一。基于质数定义的基础之上而建立的问题有很多世界级的难题,如哥德巴赫猜想等。算术基本定理证明每个大于1的正整数都可以写成素数的乘积,并且这种乘积的形式是唯一的。这个定理的重要一点是,将1排斥在素数集合以外。如果1被认为是素数,那么这些严格的阐述就不得不加上一些限制条件。 前几天偶尔的有朋友问python怎么判断素数的方法,走网上查了查,总结了python脚本判断一个数是否为素数的几种方法:

1.运用python的数学函数

import math

def isPrime(n):

if n <= 1:

return False

for i in range(2, int(math.sqrt(n)) + 1):

if n % i == 0:

return False

return True

2.单行程序扫描素数

from math import sqrt

N = 100

[ p for p in range(2, N) if 0 not in [ p% d for d in range(2, int(sqrt(p))+1)] ]

运用python的itertools模块

from itertools import count

def isPrime(n): www.jb51.net

if n <= 1:

return False

for i in count(2):

if i * i > n:

return True

if n % i == 0:

return False

3.不使用模块的两种方法方法1:

def isPrime(n):

if n <= 1:

return False

i = 2

while i*i <= n:

if n % i == 0:

return False

i += 1

return True

方法2:

def isPrime(n):

if n <= 1:

return False

if n == 2:

return True

if n % 2 == 0:

return False

i = 3

while i * i <= n:

if n % i == 0:

return False

i += 2

return True

eg:求出20001到40001之间的质数(素数)既然只能被1或者自己整出,那说明只有2次余数为0的时候,代码如下:

#!/usr/bin/python

L1=[]

for x in xrange(20001,40001):

n = 0

for y in xrange(1,x+1):

if x % y == 0:

n = n + 1

if n == 2 :

print x

L1.append(x)

print L1

结果如下:

20011

20021

20023

20029

20047

20051

20063

20071

20089

20101

20107

20113

20117

20123

20129

20143

20147

20149

20161

20173

….

python判断素数的函数_使用Python判断质数(素数)的简单方法讲解相关推荐

  1. python调用c语言函数_从Python调用C函数

    python调用c语言函数 We can call a C function from Python program using the ctypes module. 我们可以使用ctypes模块从P ...

  2. python去空格的函数_(转)python strip()函数 去空格\n\r\t函数的用法

    原文:http://www.cnblogs.com/zdz8207/p/python_learn_note_20.html python3.4学习笔记(二十) python strip()函数 去空格 ...

  3. python四大高阶函数_详谈Python高阶函数与函数装饰器(推荐)

    一.上节回顾 Python2与Python3字符编码问题,不管你是初学者还是已经对Python的项目了如指掌了,都会犯一些编码上面的错误.我在这里简单归纳Python3和Python2各自的区别. 首 ...

  4. python创建画布的函数_使用Python的turtle(海龟)模块画图

    第一步:让Python引入turtle模块,引入模块就是告诉Python你想要用它. import turtle 第二步:创建画布.调用turtle中的Pen函数 t = turtle.Pen() 第 ...

  5. python中的findall函数_关于Python正则表达式 findall函数问题详解

    在写正则表达式的时候总会遇到不少的问题, 特别是在表达式有多个元组的时候.下面看下re模块下的findall()函数和多个表达式元组相遇的时候会出现什么样的坑. 代码如下: import re str ...

  6. python无返回值函数_理解Python 中无返回值函数的问题

    例如 list 的 append 操作就是无返回值的,换句话说就是不能进行形如 list = [] list.append(1).append(2) 这样的连续操作 注意函数返回的数据类型注意是 li ...

  7. python序列化对象的函数_使 Python 对象可序列化的函数

    from copy import deepcopy from str import basestring def enserializable(model): """ 本 ...

  8. python 静态函数调用其他函数_面向Python的函数调用路径静态提取方法研究

    面向 Python 的函数调用路径静态提取方法研究 孙冉 ; 牟永敏 ; 沈美娥 [期刊名称] <计算机仿真> [年 ( 卷 ), 期] 2019(036)004 [摘要] 随着 Pyth ...

  9. python的matplotlib的函数_在Python中使用matplotlib绘制条件函数

    我试着画出这个算法的一条线或散点图,它给了我错误Traceback (most recent call last): File "/Users/itstest/Documents/works ...

最新文章

  1. 第二章:深入C#数据类型
  2. [mvc] 简单的forms认证
  3. spring装载配置文件失败报错:org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException...
  4. HighNewTech—AI界消息:2019年3月,贾扬清(Caffe框架作者)被曝从Facebook离职,入职Alibaba硅谷研究院
  5. 最明的int和Integer的区别
  6. Angular里的RouterOutlet指令学习笔记
  7. COM原理及应用之可连接对象
  8. div中嵌套div水平垂直居中
  9. java向量6_Java学习笔记6-数据结构
  10. iPad上浏览超大图像,kakadu和Jpeg2000在iOS上的例程
  11. linux还原系统_Linux Kernel 5.5 最终删除 SYSCTL 系统调用
  12. OpenCV 实现分水岭算法
  13. 推荐:绝对是最好用的公式编辑器
  14. 第五章 PCB 设计规则设置及 PCB 绘制
  15. 勒索病毒 -- “永恒之蓝”NSA 武器免疫工具
  16. 系统集成项目管理之何为系统集成
  17. oracle 建立临时表语句,oracle创建临时表
  18. windows中如何识别RTL8111B/8111C/8111D/8111E/8111F网卡 转自网络
  19. 组态王JAVA,组态王肿么实现点击按钮以后可以实现画面的运行
  20. Mac如何创建快捷方式?

热门文章

  1. Mac与Windows或Linux的键鼠共享神器Synergy
  2. 计算机视觉-混合动态纹理模型(Mixtures of Dynamic Textures)
  3. 问题:anaconda 中 tensorflow 与tensorflow-gpu 在tf.image.resize_images()上的区别
  4. mybatis 自定义插件的使用
  5. luogu1850 [NOIp2016]换教室 (floyd+dp)
  6. 6.解决循环依赖的问题
  7. SSM项目连接远程Linux服务器的mysql 启动tomcat卡在了 Initializing Spring root WebApplicationContext...
  8. Linux格式化分区报错Could not start /dev/sda No such file or directory 解决办法
  9. 20130828 到底我能赚多少钱?
  10. Basic INFO - InstallShield的版本区分