python判断素数的函数_使用Python判断质数(素数)的简单方法讲解
质数又称素数。指在一个大于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判断质数(素数)的简单方法讲解相关推荐
- python调用c语言函数_从Python调用C函数
python调用c语言函数 We can call a C function from Python program using the ctypes module. 我们可以使用ctypes模块从P ...
- python去空格的函数_(转)python strip()函数 去空格\n\r\t函数的用法
原文:http://www.cnblogs.com/zdz8207/p/python_learn_note_20.html python3.4学习笔记(二十) python strip()函数 去空格 ...
- python四大高阶函数_详谈Python高阶函数与函数装饰器(推荐)
一.上节回顾 Python2与Python3字符编码问题,不管你是初学者还是已经对Python的项目了如指掌了,都会犯一些编码上面的错误.我在这里简单归纳Python3和Python2各自的区别. 首 ...
- python创建画布的函数_使用Python的turtle(海龟)模块画图
第一步:让Python引入turtle模块,引入模块就是告诉Python你想要用它. import turtle 第二步:创建画布.调用turtle中的Pen函数 t = turtle.Pen() 第 ...
- python中的findall函数_关于Python正则表达式 findall函数问题详解
在写正则表达式的时候总会遇到不少的问题, 特别是在表达式有多个元组的时候.下面看下re模块下的findall()函数和多个表达式元组相遇的时候会出现什么样的坑. 代码如下: import re str ...
- python无返回值函数_理解Python 中无返回值函数的问题
例如 list 的 append 操作就是无返回值的,换句话说就是不能进行形如 list = [] list.append(1).append(2) 这样的连续操作 注意函数返回的数据类型注意是 li ...
- python序列化对象的函数_使 Python 对象可序列化的函数
from copy import deepcopy from str import basestring def enserializable(model): """ 本 ...
- python 静态函数调用其他函数_面向Python的函数调用路径静态提取方法研究
面向 Python 的函数调用路径静态提取方法研究 孙冉 ; 牟永敏 ; 沈美娥 [期刊名称] <计算机仿真> [年 ( 卷 ), 期] 2019(036)004 [摘要] 随着 Pyth ...
- python的matplotlib的函数_在Python中使用matplotlib绘制条件函数
我试着画出这个算法的一条线或散点图,它给了我错误Traceback (most recent call last): File "/Users/itstest/Documents/works ...
最新文章
- 第二章:深入C#数据类型
- [mvc] 简单的forms认证
- spring装载配置文件失败报错:org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException...
- HighNewTech—AI界消息:2019年3月,贾扬清(Caffe框架作者)被曝从Facebook离职,入职Alibaba硅谷研究院
- 最明的int和Integer的区别
- Angular里的RouterOutlet指令学习笔记
- COM原理及应用之可连接对象
- div中嵌套div水平垂直居中
- java向量6_Java学习笔记6-数据结构
- iPad上浏览超大图像,kakadu和Jpeg2000在iOS上的例程
- linux还原系统_Linux Kernel 5.5 最终删除 SYSCTL 系统调用
- OpenCV 实现分水岭算法
- 推荐:绝对是最好用的公式编辑器
- 第五章 PCB 设计规则设置及 PCB 绘制
- 勒索病毒 -- “永恒之蓝”NSA 武器免疫工具
- 系统集成项目管理之何为系统集成
- oracle 建立临时表语句,oracle创建临时表
- windows中如何识别RTL8111B/8111C/8111D/8111E/8111F网卡 转自网络
- 组态王JAVA,组态王肿么实现点击按钮以后可以实现画面的运行
- Mac如何创建快捷方式?
热门文章
- Mac与Windows或Linux的键鼠共享神器Synergy
- 计算机视觉-混合动态纹理模型(Mixtures of Dynamic Textures)
- 问题:anaconda 中 tensorflow 与tensorflow-gpu 在tf.image.resize_images()上的区别
- mybatis 自定义插件的使用
- luogu1850 [NOIp2016]换教室 (floyd+dp)
- 6.解决循环依赖的问题
- SSM项目连接远程Linux服务器的mysql 启动tomcat卡在了 Initializing Spring root WebApplicationContext...
- Linux格式化分区报错Could not start /dev/sda No such file or directory 解决办法
- 20130828 到底我能赚多少钱?
- Basic INFO - InstallShield的版本区分