精华内容
下载资源
问答
  • 来看这一种判断素数(质数)的函数: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,...]少了合数的部分。

    展开全文
  • 来看这一种判断素数(质数)的函数: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,...]少了合数的部分。

    展开全文
  • python统计101~200中素数的个数,并且输出所有的素数。 分析:这是一道典型的循环题。首先,我们应该考虑101~200中得每一个都需要判断是否为素数;其次,每一个数在判断素数时都需要判断能不能被1和它本身以外的...

    用python统计101~200中素数的个数,并且输出所有的素数。

    分析:这是一道典型的循环题。首先,我们应该考虑101~200中得每一个都需要判断是否为素数;其次,每一个数在判断为素数时都需要判断能不能被1和它本身以外的数整除。所以这道题,我们在编写程序的时候要用嵌套循环。

    1. for循环编写程序:
      方法一:
      for i in range(101, 200):
          for j in range(2, i//2):
              if i % j == 0:
                  break
              elif j == i // 2 - 1:
                  print(i)
              else:
                  continue
      

      注意事项:

      1. 在编写python程序的时候需要注意range(a,b) ,这是一个前闭后开区间,取a不取b
      2. 当我们在判断每一个数x是否是素数的时候,我们只需要计算这个数能不能被[2,x/2]之间的数整除即可
      3. 当我们判断一个数x不能被整除后,就用关键字break结束此次循环(注意区分break和continue)
      方法二:
      for i in range(101, 200):
          for j in range(2, i//2+1):
              if i % j == 0:
                  break
          else:
              print(i)
      

      注意事项:

      1. 此方法中与else对应的if条件为空,也就是第二个for循环的内容相当于if的条件和内容
      方法三:
      for i in range(100, 200):
          s = 0
          for j in range(2, i):
              if i % j != 0:
                  s += 1
                  continue
              else:
                  break
          if s == i - 2:
              print(i)
      

      注意事项:

      1. 对每一个数进行求余,如果不能够整除,则对s加一,对该数的判断结束后,进行判断:s == i-2(对除1和自身以外数进行判断)
      方法四:
      for i in range(101, 200):
          list01 = []
          for j in range(2, i):
              list01.append(str(i % j))
          if "0" not in list01:
              print(i)
      

      注意事项:

      1. 这种方法是在方法三的基础上改进的,对每个数求余的结果存入列表中,再判断0是否在列表中即可。
    展开全文
  • 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 看起来,这是一种比较优秀...

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

    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,...]少了合数的部分。

    转载于:https://www.cnblogs.com/busui/p/7210358.html

    展开全文
  • Python中判断素数(质数)的算法

    万次阅读 2018-04-22 22:18:57
    n = int(input("...)else: for x in range(2,n): # 生成2到n的数,不包括n if n % x == 0: # 除数不包括1和n本身,所以在此循环只要能被其它数整除,就代表不是素数 print("n不是素数!") el...
  • 质数(Prime number),又称素数,指在大于1的自然数,除了1和该数自身外,无法被其他自然数整除的数(也可定义为只有1与该数本身两个因数的数)。那么想计算出一个随机数是不是质数用Python应该怎么写呢?首先第一句...
  • 判断一个给定的正整数是否素数输入格式:输入在第一行给出一个正整数n(≤ 10),随后n行,每行给出一个小于1000000 的需要判断的正整数输出格式:对每个需要判断的正整数,如果它是素数,则在一行输出yes,否则输出no...
  • 今天咱们继续来学一个python小例子,其实在上一篇的ghpython中有学过,就是判断一个自然数是否是素数,如果是输出为True,如果不是,输出为否。这么简单的一个问题,今天为啥又要单独拿出来讨论呢,因为对于之前的...
  • python怎么判断素数

    2021-01-19 23:44:21
    质数(Prime number),又称素数,指在大于1的自然数,除了1和该数自身外,无法被其他自然数整除的数(也可定义为只有1与该数本身两个因数的数)。 那么想计算出一个随机数是不是质数用Python应该怎么写呢?首先第...
  • 质数(Prime number),又称素数,指在大于1的自然数,除了1和该数自身外,无法被其他自然数整除的数(也可定义为只有1与该数本身两个因数的数)。那么想计算出一个随机数是不是质数用Python应该怎么写呢?首先第...
  • Java 中判断素数我们有很多方法,每种方法时间复杂度也不一样。今天我汇总了一下,分享给大家。既可以输出前 50 或 n 个素数,也可以判断 100 (或 n) 以内的素数。1. 从 2 到 x-1 测试是否可以整除Scanner in = new ...
  • python语言判断素数(质数)

    千次阅读 2020-03-23 11:45:23
    今天查了很多关于判断质数的代码,自己也尝试写了一下。 质数是指在大于1的自然数,除了1和它本身以外不再有其他因数的自然数。 所有我们能很容易的想到使用for循环来实现输入数m和[2,m-1)的相除。 代码实现:...
  • 以下是我对这个问题的看法:frommathimportsqrt;...1andall(n%iforiinislice(count(2),int(sqrt(n)-1)))这是一个非常简单和简洁的算法,因此它并不意味着接近最快或最优的素数检查算法。它的时间复杂...
  • 这篇文章主要介绍了使用Python判断质数(素数)的简单方法讲解,经常被用来做科学计算的Python处理这种小问题当然手到擒来^_-需要的朋友可以参考下质数又称素数。指在一个大于1的自然数,除了1和此整数自身外,不能被...
  • 第一种方法利用这个素数的定义,我们可以得出第一种判断素数的方法:int isPrime1(int n){int i = 0;//2是素数if(n <= 3)return n > 1;//当n不能被除了1和n自身整除的数外的数是素数for(i = 2; i < n; i ++...
  • 质数(prime number)又称素数。指在一个大于1的自然数,除了1和此整数自身外,不能被其他自然数整除的数。...总结python脚本判断一个数是否为素数的几种方法:#运用python的数学函数import mathdef isPrime(n):i...
  • 素数在数论有着很重要的地位。比1大但不是素数的数称为合数。1和0既非素数也非合数。质数是与合数相对立的两个概念,二者构成了数论当中最基础的定义之一。基于质数定义的基础之上而建立的问题有很多世界级的难题...
  • Python中利用filter判断素数def odd(): n = 1 while True: n += 2 yield n def div(n): return lambda x: x % n > 0 def primes(): yield 2 it = odd() while True: n = ne
  • 素数在数论有着很重要的地位。比1大但不是素数的数称为合数。1和0既非素数也非合数。质数是与合数相对立的两个概念,二者构成了数论当中最基础的定义之一。基于质数定义的基础之上而建立的问题有很多世界级的难题...
  • 算法一:defisprime(n):if n (2,int(math.sqrt(n))+1):if n % i ==0:returnFalsereturn True任意一个合数都可分解为素数因子的乘积,观察素数的分布可以发现:除 2,3 以外的素数必定分布在 6k (k为大于...
  • 在本文,我们将研究三种这样的方法,并判断哪种方法在执行时间上更有效。检查所有除数这是一个简单的程序,我们将每个整数从给定的数字减去1到一个,然后继续检查该数字是否除以其中的任何一个。如果未找到可以...
  • 这条线可以左右滑动,图它在最左端,它可以一直往右滑。在现在的位置,横线上有许多个素数(显然超过5个这条横线每向右滑一步,会吐出一个数并吞入一个数。可能的情况有四种:1、吐出一个素数,吞入一个素数,横线...
  • 在比赛或者工作时,有时候会经常要求我们编程求素数,但是我们自己写出来的时间复杂度太高,...C语言// 对 n 进行素数判断inline static int is_prime(int n){int i;if (n == 2){return 1;}if (n < 2 || n % 2 =...
  • 在上上个星期,我们学习了如何判断一个数是否是素数大家可以先简单的回顾一下:质数判断在文章的最后,我提到了一个思想,判断一个数是否为素数的最好方法是判断小于√n的素数中有没有可以整除n的。因为一个数如果不...
  • 本文将要为您介绍的是Python练习题4.11判断素数,具体完成步骤:判断一个给定的正整数是否素数输入格式:输入在第一行给出一个正整数N(≤ 10),随后N行,每行给出一个小于1000000 的需要判断的正整数输出格式:对每个...

空空如也

空空如也

1 2 3 4 5 ... 18
收藏数 355
精华内容 142
关键字:

python中判断素数

python 订阅