精华内容
下载资源
问答
  • 2018-07-28 13:49:34
    def is_prime(x):
      if x <=1:
        return False
      for i in range(2, x):
        if x % i == 0:
          break
      else:
        return True
      return False

    代码使用for…else循环

    更多相关内容
  •  if isPrime1(j):#使用isPrime1() isPrime2 isPrime3() isPrime4()函数功能相同效率不同,可以引入time判断使用的时间  #涉及简单计时 http://www.cnblogs.com/didiaoxiaoguai/p/6684094.html    strPrime = ...

    def isPrime1(n):
        for i in range(2,n):#对2到n取余
            if n % i == 0:
                return False
        else:#注意缩进
            return True

     

    def isPrime2(n):
        for i in range(2,n//2+1):#对2到n/2取余
            if n % i == 0:
                return False
        else:
            return True

     

    def isPrime3(n):
        for i in range(2,int(n**0.5)):#对2到根号n取余
            if n % i == 0:
                return False
        else:
            return True


    N = 1000#求素数的范围

    strPrime = ""
    for j in range(2,N):
        if isPrime1(j):#使用isPrime1()  isPrime2 isPrime3() isPrime4()函数功能相同效率不同,可以引入time判断使用的时间

             #涉及简单计时http://www.cnblogs.com/didiaoxiaoguai/p/6684094.html                      
            strPrime = strPrime + str(j) + " "
    print(strPrime)

     

    #以下为另一写法

    def isPrime4(n):
        for i in range(3,int(n**0.5),2):#将步长设为2
            if n % i == 0:
                return False
        else:
            return True

    N = 1000 #

    strPrime = "2 "
    for j in range(3,N,2):
        if isPrime4(j):
            strPrime = strPrime + str(j) + " "
    print(strPrime)

     

    转载于:https://www.cnblogs.com/didiaoxiaoguai/p/6718130.html

    展开全文
  • 主要介绍了使用Python判断质数(素数)的简单方法讲解,经常被用来做科学计算的Python处理这种小问题当然手到擒来^_-需要的朋友可以参考下
  • python 用自定义函数方法来判断输入的数是否为素数
    n = eval(input("请输入您要判断素数n的值:"))
    
    def primer(k):
        for i in range(2,k):
            if k % i == 0:
                return 0
            pass
        return 1
    
    if n == 1:
        print("{}不是素数".format(n))
        pass
    elif n == 2:
    	print("{}是素数".format(n))
    elif primer(n) == 0:
        print("{}不是素数".format(n))
    elif primer(n) == 1:
        print("{}是素数".format(n))
    
    

    结果:

    请输入您要判断素数n的值:15321
    15321不是素数
    
    展开全文
  • 首先来看下质数定义质数,又称素数,指的是大于1的自然数中,除了1和自身外,无法被其他自然数整除的数。与质数相对的概念是合数。根据定义,我们可以实现如下的is_prime函数。def is_prime(n): if not ...

    这个问题称为质数(Prime)判定问题。给定一个数,判断该数是否为质数。

    首先来看下质数的定义:

    质数,又称素数,指的是大于1的自然数中,除了1和自身外,无法被其他自然数整除的数。

    03264f7a-6813-eb11-8da9-e4434bdf6706.png

    与质数相对的概念是合数。

    根据定义,我们可以实现如下的is_prime函数。

    def is_prime(n):    if not isinstance(n, int) or n < 2:        return False    for i in range(2, n):        if (n % i) == 0:            return False    return True

    其中isinstance(n, int)的作用是判断n的类型,如果不是整数(Integer),或者小于2直接返回False。然后是对从2开始到n-1的数字依次进行判断,如果可以整除返回False,如果通过了以上测试则证明是质数,返回True。

    让我们简单测试下。

    for i in range(10):    print(i, is_prime(i))

    将输出

    0 False1 False2 True3 True4 False5 True6 False7 True8 False9 False

    结果是正确。这种方法非常简单,直观,但是不够高效。它的时间复杂度为O(n)。

    接下来让我们来对他进行优化,考虑一个数,它的因子(可以被n整除的数)肯定不会大于n/2,所以可以缩小这个判断的范围。改进后代码如下。

    def is_prime(n):    if not isinstance(n, int) or n < 2:        return False    for i in range(2, n//2+1):        if (n % i) == 0:            return False    return True

    可以再次验证函数的正确性。没有问题,通过上边的修改,可以更快速的判断质数。但是该方法的时间复杂度依然是O(n)。

    如果你再深入的考虑下,其实只需要考虑那些小于等于n的平方根的数。原因是如果n有大于n的平方根的因子,那么一定有小于n的平方根的因子。比如对于64来说,它的平方根是8。64有大于8的因子,如16,32,那么它一定有小于8的因子2, 4,否则不能成立。

    根据以上思想,可以进一步优化程序。

    def is_prime(n):    if not isinstance(n, int) or n < 2:        return False    for i in range(2, int(n**0.5)+1):        if (n % i) == 0:            return False    return True

    通过以上修改可以将时间复杂度降低到O(n**0.5)。

    那么下面考虑一个新问题,如果计算小于等于数n的所有素数。

    我们可以枚举每个小于等于n的数字,然后利用前面的函数判断是否为质数。

    代码如下:

    def find_primes(n):    if not isinstance(n, int) or n < 2:        return []    primes = []    for i in range(n+1):        if is_prime(i):            primes.append(i)    return primes

    我们可以演算下方法的正确性。

    print(find_primes(100))

    将输出

    [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]

    可以看到该方法是正确的。但是这个方法是时间复杂度是O(n*n**0.5)。

    是否可以改进,答案是Yes。

    该方法是由希腊数学家埃拉托斯特尼(Eeatosthese)在公元前250年提出。所使用的原理是从2开始,将每个质数的倍数标记成合数。一个素数的所有倍数构成了一个差为此质数的等差数列。最后将那些没有标记为合数的数字输出即为质数。该方法又被称为筛数法。

    05264f7a-6813-eb11-8da9-e4434bdf6706.gif

    代码如下。

    def find_primes(n):    if not isinstance(n, int) or n < 2:        return []    flags = [True] * (n+1)    for i in range(2, int(n**0.5) + 1):        if flags[i]:            for j in range(i*i, n+1, i):                flags[j] = False    return [x for x in range(2, n+1) if flags[x]]

    该方法的时间复杂度为O(n)。

    在我的笔记本上运行枚举判断法查询小于等于100000的所有质数,需要用229ms,而利用筛数法,仅需要15ms。再次印证了算法的重要性。

    展开全文
  • 工具/材料python3.6math模块time模块操作方法01根据素数定义,写一个粗略的自定义函数:def p(n):if str(n).isdigit() and n>1:for i in range(2,n-1):if n%i==0:return Falsereturn Trueelse:print('变量有误...
  • (4)质数的个数公式 是不减函数。 (5)若n为正整数,在 到 之间至少有一个质数。 (6)若n为大于或等于2的正整数,在n到 之间至少有一个质数。 (7)若质数p为不超过n( )的最大质数,则 。 (8)所有大于10的...
  • Python|自定义判断质数函数

    千次阅读 2020-08-12 15:45:40
    Python制作一个判断数字是否为质数函数 如果有更好的思路,欢迎评论区交流(●’◡’●) 函数描述 质数:在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。 自然数:用数码0,1,2,3,4……所表示...
  • python判断是否为素数

    千次阅读 2020-11-24 03:49:46
    质数(prime number)又称素数。指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数。...总结python脚本判断一个数是否为素数的几种方法:#运用python的数学函数import mathdef isPrime(n):i...
  • Python -- 定义一个函数判断输入的数是不是质数

    千次阅读 多人点赞 2020-02-24 15:07:26
    Python定义一个函数判断输入的数是不是质数 质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数,否则称为合数。 #定义一个函数判断该数是不是质数 def sum(n): if n > 1: for i in ...
  • Python:用函数判断一个数是否是素数

    万次阅读 2021-10-19 17:38:26
    函数判断一个数是否是素数 prime(p), 其中函数prime当用户传入参数p为素数时返回True,否则返回False。 思路 1、先输入一个要判断的数 2、编写函数,判断素数,输出flag 代码 import math p=eval(input("请...
  • Python 内置函数判断素数

    千次阅读 2021-06-19 22:46:05
    #coding=utf-8 # 输入一个整数n n = int(input()) # 请在此添加代码,对输入的整数进行判断,如果是素数则输出为True,不是素数则输出为False #********** Begin *********# #定义一个函数prime def prime(n): """ ...
  • python输入并判断一个数是否为素数x=int(input("x\n")); i=2; for i in range(2,x+1): if(x%i==0): break;if(i==x and i。用python 判断一个数是否是素数小编觉得小编的程序是对的但为什么没办法运行,那个弹出来的...
  • python怎么判断素数

    2021-01-19 23:44:21
    质数(Prime number),又称素数,指在大于1的自然数中,除了1和该数自身外,无法被其他自然数整除的数(也可定义为只有1与该数本身两个因数的数)。 那么想计算出一个随机数是不是质数Python应该怎么写呢?首先第...
  • 本文主要向大家介绍了使用Python语言判断质数(素数)的简单方法,通过具体的实例让大家了解,希望对大家学习Python语言有所帮助。质数又称素数。指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除...
  • 主要介绍了Python 2种方法求某个范围内的所有素数(质数),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • 使用Python判断质数(素数)的简单

    千次阅读 2020-12-17 21:53:12
    这篇文章主要介绍了使用Python判断质数(素数)的简单方法讲解,经常被用来做科学计算的Python处理这种小问题当然手到擒来^_-需要的朋友可以参考下质数又称素数。指在一个大于1的自然数中,除了1和此整数自身外,不能被...
  • 部分函数会调用前面的函数,如素数判断会调用rabin import random import math 等,还可以 import time 比较运行时间,择优 start=time.time() ''' 函数 ''' end=time.time() print(end-start) 小
  • PYTHON编写一个小程序,输出所有满足条件的素数k=[2,3,5,7,11,13,17,19,23,29,31]foriinrange(100,998):if(i%10 i%100//10)%10==(i//100):formink:ifi%m==0:breakifm==31:print(i)对于这种算有自己的一...
  • 本文实例讲述了Python编程判断一个正整数是否为素数的方法。分享给大家供大家参考,具体如下: import string import math #判断是否素数函数 def isPrime(n): if(n<2 xss=removed>2): for d in range(2,int...
  • Python 判断是否为质数素数的实例

    万次阅读 2020-12-29 08:51:56
    一个大于1的自然数,除了1和它本身外,不能被其他...首先我们来第一个传统的判断思路:def handlerNum(num):# 质数大于 1if num > 1:# 查看是否有其他因子for i in range(2, num//2+1):if (num % i) == 0:pr...
  • Python习题】判断素数函数(保姆级图文+实现代码) 写一个函数isPrime(n)用于判断一个数字n是不是素数,用户输入一个正整数,在一行内输出不大于该数的所有素数,各数后面用一个空格分隔。‪‬‪‬‪‬‪‬‪‬‮...
  • Python实例:判断素数

    千次阅读 2019-11-12 20:20:46
    说明:本程序首先定义一个判断素数并将其输出的函数IsPrime()IsPrime()IsPrime(),函数包含两个参数aaa和bbb,本程序的作用即输出aaa和bbb之间的所有素数。 Python程序实现 #Date:2019-11-12 #Writer:无名十三 def...
  • 用C语言编写自定义函数prime(int x),判断x是否为素数?int prime(int x){int i,kk=(int)sqrt( (double)x )for(i=2i&...gtk)retrun 1elsereturn 0}C语言,编写函数判断一个整数是否为素数,在主函数中调用该函数...
  • Python 函数定义质数

    2022-04-23 17:07:29
    1.定义一个函数,它有一个名为num的参数 (1)在控制台输入一个正整数num, 找出1~num之间的所有质数,并在控制台打印输出
  • 素数(也称质数),是指除了1和该数本身,不能被任何正整数整除的正整数。判断一个正整数m是否为素数,只要判断m可否被2~根号m之中的任何一个正整数整除,如果m不能被此范围中任何一个正整数整除,m即为素数,否则m...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,829
精华内容 2,331
关键字:

python定义函数判断素数