精华内容
下载资源
问答
  • 来看这一种判断素数(质数)的函数:form math import sartdef is_prime(n):if n==1:return Falsefor i in range(2, int(sqrt(n) + 1)):if n % i == 0:return Falsereturn True看起来,这是一种比较优秀的方法了,...

    来看这一种判断素数(质数)的函数:

    form math import sart

    def is_prime(n):

    if n==1:

    return False

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

    if n % i == 0:

    return False

    return True

    看起来,这是一种比较优秀的方法了,因为通过sqrt()函数减少了开方级的计算量。

    再来看:

    def is_prime(number):

    if number > 1:

    if number == 2:

    return True

    if number % 2 == 0:

    return False

    for current in range(3, int(math.sqrt(number) + 1), 2):

    if number % current == 0:

    return False

    return True

    return False

    咋一看,这一次的代码看起来更多。但是,计算量却又在原来的基础上又几乎减少一半。高明之处就在这一句:if number % 2 == 0:,其实这一句就一部将2以及所有合数因子给排除掉了,所以在这一句range(3, int(math.sqrt(number) + 1), 2)中,直接从3起步,步长为2.在range()函数产生的序列是[3,5,7,9,...],比原来由range(2, int(sqrt(n) + 1))产生的[2,3,4,5,6,...]少了合数的部分。

    展开全文
  • 1 #运用python的数学函数23 importmath45 defisPrime(n):6 if n

    1 #运用python的数学函数

    2

    3 importmath4

    5 defisPrime(n):6 if n <= 1:7 returnFalse8 for i in range(2, int(math.sqrt(n)) + 1):9 if n % i ==0:10 returnFalse11 returnTrue12

    13 #单行程序扫描素数

    14

    15 from math importsqrt16 N = 100

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

    19

    20 #运用python的itertools模块

    21

    22 from itertools importcount23 defisPrime(n):24 if n <= 1:25 returnFalse26 for i in count(2):27 if i * i >n:28 returnTrue29 if n % i ==0:30 returnFalse31

    32 #不使用模块的两种方法

    33

    34 defisPrime(n):35 if n <= 1:36 returnFalse37 i = 2

    38 while i*i <=n:39 if n % i ==0:40 returnFalse41 i += 1

    42 returnTrue43

    44

    45 defisPrime(n):46 if n <= 1:47 returnFalse48 if n == 2:49 returnTrue50 if n % 2 ==0:51 returnFalse52 i = 3

    53 while i * i <=n:54 if n % i ==0:55 returnFalse56 i += 2

    57 return True

    展开全文
  • 比1大但不是素数的数称为合数。1和0既非素数也非合数。质数是与合数相对立的两个概念,二者构成了数论当中最基础的定义之一。基于质数定义的基础之上而建立的问题有很多世界级的难题,如哥德巴赫猜想等。算术基本...

    质数又称素数。指在一个大于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

    ….

    展开全文
  • 来看这一种判断素数(质数)的函数:form math import sartdef is_prime(n):if n==1:return Falsefor i in range(2, int(sqrt(n) + 1)):if n % i == 0:return Falsereturn True看起来,这是一种比较优秀的方法了,...

    来看这一种判断素数(质数)的函数:

    form math import sart

    def is_prime(n):

    if n==1:

    return False

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

    if n % i == 0:

    return False

    return True

    看起来,这是一种比较优秀的方法了,因为通过sqrt()函数减少了开方级的计算量。

    再来看:

    def is_prime(number):

    if number > 1:

    if number == 2:

    return True

    if number % 2 == 0:

    return False

    for current in range(3, int(math.sqrt(number) + 1), 2):

    if number % current == 0:

    return False

    return True

    return False

    咋一看,这一次的代码看起来更多。但是,计算量却又在原来的基础上又几乎减少一半。高明之处就在这一句:if number % 2 == 0:,其实这一句就一部将2以及所有合数因子给排除掉了,所以在这一句range(3, int(math.sqrt(number) + 1), 2)中,直接从3起步,步长为2.在range()函数产生的序列是[3,5,7,9,...],比原来由range(2, int(sqrt(n) + 1))产生的[2,3,4,5,6,...]少了合数的部分。

    展开全文
  • 一个大于1自然数,除了1和它本身外,不能被其他...首先我们来第一个传统的判断思路:def handlerNum(num):# 质数大于 1if num > 1:# 查看是否有其他因子for i in range(2, num//2+1):if (num % i) == 0:pr...
  • python判断素数的函数

    千次阅读 2017-07-20 11:38:00
    来看这一种判断素数(质数)的函数: form math import sart def is_prime(n): if n==1: return False for i in range(2, int(sqrt(n) + 1)): if n % i == 0: return False return True 看起来,这是一种比较优秀...
  • 概述今天主要分享一个判断素数的实例,一起来看看吧~需求用Python判断101-200之间有多少个素数,并输出所有素数。思路判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是...
  • 概述今天主要分享一个判断素数的实例,一起来看看吧~需求用Python判断101-200之间有多少个素数,并输出所有素数。思路判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是...
  • 文件和异常实际开发中常常会遇到对数据进行持久化操作...在Python中实现文件读写操作其实非常简单,通过Python内置open函数,我们可以指定文件名、操作模式、编码信息等来获得操作文件对象,接下来就可以...
  • Python教程学习:文件和异常在实际开发中,常常需要对程序中数据进行持久...在Python中实现文件读写操作其实非常简单,通过Python内置open函数,我们可以指定文件名、操作模式、编码信息等来获得操作文件对...
  • 常见概念梳理Python中,不仅仅变量值是可以变化,类型也是可以随时变化 Python的变量必须初始化否则提示 is not definedif、while中定义变量在外面也可以访问,但是在函数中除非定义全局变量否则只能在函数...
  • 转自同名微信公众号 接上题:打印出100~1000里的所有素数,并打印出素数的个数。 判断数字n是否是素数在第7课学过。n = 61199293 for i in range(2,n): if n % i == 0: print(i) print('n is not a prime number'...
  • 我们已经学过Python函数的无参数形式和按位传值参数形式,这一课里全面说明Python函数的参数形式。一、带默认值参数 分数由分子和分母构成,但为什么不输入参数和只输入分子>>>from fractions import ...
  • python判断素数的方法

    千次阅读 2019-04-22 22:10:08
    转载:https://www.cnblogs.com/themost/p/6552198.html 1 #运用python的数学函数 2 3 import math 4 5 def isPrime(n): 6 if n <= 1: 7 return False 8 for i in range(2...
  • 感谢所有给出意见的大神们,无论什么意见都非常感谢你们花时间看了这个并给出了宝贵的意见。我会根据大家意见不断改进...因为我将对素数的求法的问题转化为了画图的就能解决的问题,这本身就是最重大的突破。并且素...
  • 编写判断素数的函数并找出前5个默尼森数。 名词解释 P是素数且M也是素数,并且M=2P - 1,则称M为默尼森数。例如,P=5, M=2P - 1 = 31,5和31都是素数,因此31是默尼森数。 输出格式 输出前五个默尼森数。每行输出一...
  • 本文以GitHub上100天python从新手到大师为素材,规划为约100天练习,每次学习和总结均发在这里。有错误地方还请朋友们指正。函数的作用如下面有一个问题,计算三个三角形面积。 如果只运用之前所学知识,...
  • 大家好,最近有个小伙伴对小鱼说她最近好烦啊,因为要处理很多数量庞大数据,每次都要进行筛选后运算,她就一个一个输入,然后进行运算,加班很频繁,哭泣。 大家有没有也有这种苦恼呢,同样流程重复做很多遍...
  • 在比赛或者工作时,有时候会经常要求我们编程求素数,但是我们自己写出来时间复杂度太高,所以我在这里做个总结。先贴上最终函数,该段代码在开启最大代码优化时,可以直接内嵌进调用程序中,使得速度更加极致。...
  • 给定一个整数n,判断是否是质数(质数是只能被1和它自身整除数)第一种:运用数学函数importmathnum=int(input("输入一个数值:"))ifnum>1:sqare_num=math.floor(num**0.5)foriinrange(2,num):if(num%iandnum%(i+1)...
  • Python学习教程:函数和模块使用跟大家嘱咐一句,每日更新100天教程讲解后面都有练习题,大家在看完后,尝试着动手去做一做!讲解本章节内容之前,我们先来研究一道数学题,请说出下面方程有多少组正整数解...
  • 下面认为1是合数。因为“合数”比“非素数”好听多了。为了直观,我们把正整数列成一排。下面有一条线,这条线长度刚好够框住...可能情况有四种:1、吐出一个素数,吞入一个素数,横线上的素数个数没有变化。2、...
  • } } } Python import sys try: while True: line = sys.stdin.readline().strip() if line == '': break lines = line.split() print int(lines[0]) + int(lines[1]) except: pass Python3 import sys for line in ...
  • 「@Author:Runsen」❝编程本质来源于算法,而算法本质来源于数学,编程只不过将数学题进行代码化。「---- Runsen」❞先问你们一个小学问题:「什么是质因数?小学是对一个数进行分解质因数」上次,我介绍了短除...
  • 2: returnFalsefor i in range(2,int(math.sqrt(n))+1):if n % i ==0:returnFalsereturn True任意一个合数都可分解为素数因子的乘积,观察素数的分布可以发现:除 2,3 以外的素数必定分布在 6k (k...
  • 质数(prime number)又称素数。指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数。...总结python脚本判断一个数是否为素数的几种方法:#运用python的数学函数import mathdef isPrime(n):i...
  • 先来看下什么是质数:质数(Prime number),又称素数,指在大于1自然数中,除了1和该数自身外,无法被其他自然数整除数(也可定义为只有1与该数本身两个因数数)。简单来说就是,只能除以1和自身数(需要大于1)...

空空如也

空空如也

1 2 3 4 5 ... 14
收藏数 272
精华内容 108
关键字:

python判断素数的函数

python 订阅