精华内容
下载资源
问答
  • 本文为大家分享了多种方法求质数python实现代码,供大家参考,具体内容如下题目要求是所有小于n的质数的个数。求质数方法1:穷举法:根据定义循环判断该数除以比他小的每个自然数(大于1),如果有能被他整除的就...

    本文为大家分享了多种方法求质数python实现代码,供大家参考,具体内容如下

    题目要求是求所有小于n的质数的个数。

    求质数方法1:

    穷举法:

    根据定义循环判断该数除以比他小的每个自然数(大于1),如果有能被他整除的就不是质数:

    def countPrimes1(self, n):

    """

    :type n: int

    :rtype: int

    """

    if n<=2:

    return 0

    else:

    res=[]

    for i in range(2,n):

    flag=0 # 质数标志,=0表示质数

    for j in range(2,i):

    if i%j ==0:

    flag=1

    if flag==0:

    res.append(i)

    return len(res)

    求质数方法2:

    利用定理:如果一个数是合数,那么它的最小质因数肯定小于等于它的平方根。所以判断一个数是否是质数,只需判断它是否能被小于它开根后的所有数整除。这样做的运算会少很多。

    def countPrimes2(self, n):

    if n<=2:

    return 0

    else:

    res=[]

    for i in range(2, n):

    flag=0

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

    if i % j == 0:

    flag = 1

    if flag == 0:

    res.append(i)

    return len(res)

    求质数方法3:

    利用定理:如果一个数是合数,那么它的最小质因数肯定小于等于它的平方根。我们可以发现只要尝试小于等于平方根的所有数即可。列举从 3 到根号x的所有数,还是有些浪费。比如要判断101是否质数,101的根号取整后是10,需要尝试的数是1到10。但是可以发现,对9的尝试是多余的。不能被3整除,必然不能被9整除……顺着这个思路走下去,其实,只要尝试小于根号x的质数即可。而这些质数,恰好前面已经算出来了,已经存在res中了。

    def countPrimes3(self, n):

    if n <= 2:

    return 0

    else:

    res = []

    for i in range(2, n):

    flag = 0

    for j in res:

    if i % j == 0:

    flag = 1

    if flag == 0:

    res.append(i)

    return len(res)

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

    展开全文
  • python求素数

    2021-04-08 20:11:57
    做了一个python的关于求素数的代码,很简单,新手可以参考一下,可能有很多的不足,还请指正。菜鸟勿喷哈哈哈。 def math1(num1, num2): amount = 0 for num in range(num1, num2): judgement = False i = 2 ...

    做了一个python的关于求素数的代码,很简单,新手可以参考一下,可能有很多的不足,还请指正。菜鸟勿喷哈哈哈。

    def math1(num1, num2):
        amount = 0
        for num in range(num1, num2):
            judgement = False
            i = 2
            while i < num:
                if num % i == 0:
                    break
                i += 1
            else:
                judgement = True
            if judgement:
                amount += 1
        print("所给范围内素数个数为", amount)
    
    
    def math2(num):
        i = 2
        while i < num:
            if num % i == 0:
                print(num, "是质数")
                break
        else:
            print(num, "不是质数")
    
    
    def select(inputer):
        try:
            num = int(inputer)
            math2(num)
        except:
            list = inputer.split('-')
            num1 = int(list[0])
            num2 = int(list[1])
            math1(num1, num2)
    
    while True:
        inputer = input("给我一个范围我帮你求有几个素数。\n(要求格式为:\n1.a-b,注意b不包含其中\n2.a,即判断所给数字是否为素数)\n"
                        "注意:输入d退出操作")
        if inputer=='d':
            print("")
            print("谢谢使用!")
            break
        print("")
        select(inputer)
        print("")
    
    展开全文
  • 质数(Prime number),又称素数,指在大于1的自然数中,除了1和该数自身外,无法被其他自然数整除的数(也可定义为只有1与该数本身两个因数的数)。简单来说就是,只能除以1和自身的数(需要大于1)就是质数。举个...

    5def33e115746768.gif

    质数(Prime number),又称素数,指在大于1的自然数中,除了1和该数自身外,无法被其他自然数整除的数(也可定义为只有1与该数本身两个因数的数)。

    简单来说就是,只能除以1和自身的数(需要大于1)就是质数。举个栗子,5这个数,从2开始一直到4,都不能被它整除,只有1和它本身(5)才能被5整除,所以5就是一个典型的质数。

    那么想计算出一个随机数是不是质数用Python应该怎么写呢?首先第一句话肯定是接受用户输入的数字:n = int(input("please enter the number:"))

    接着要计算该数是不是质数,那么就要从2开始一直除到该数之前的那个自然数,很明显是一个数字范围:for i in range(2, n):

    在循环体里面,每次循环当然就是要判断当次除法是否是整除,这里可以使用求模运算,也就是取余,当余数为0时,该数就不是质数:if n % i == 0:

    print("%d is not a prime number!" % n)

    break

    这个break意思就是当该数不是质数时,就跳出整个循环,该数就不是我们要的数字了。

    那么,所有循环迭代都完成后还没有找出能整除的情况的话,那么可以判断该数就是一个质数,所以:else:

    print("%d is a prime number!" % n)

    拿到了所有的质数,再写一个求和的方法,就能计算质数的和了。

    展开全文
  • Python求素数

    2021-04-01 12:12:10
    Python素数判断Filter列出100以内素数 Filter 首先了解一下这个函数,Python内建的filter()函数用于过滤序列,用法与map()函数类似,接收一个函数一个序列,不通点在filter()把传入的函数作用于每一个元素,根据...

    Python素数判断

    Filter

    首先了解一下这个函数,Python内建的filter()函数用于过滤序列,用法与map()函数类似,接收一个函数一个序列,不通点在filter()把传入的函数作用于每一个元素,根据返回值是true函数false,来判断元素的去留

    #在一个list中只保留奇数
    def is_odd(n):
        return n % 2 == 1
    print(list(filter(is_odd,[1,2,3,4,5,6,7,8,9,10])))
    
    

    列出100以内素数

    def _odd_iter():
        n = 1
        while True:
            n = n + 2
            yield n
    def _not_divisible(n):
        return lambda x:x % n > 0
    def primes():
        yield 2
        it = _odd_iter()
        while True:
            n = next(it)
            yield n
            it = filter(_not_divisible(n),it)
    for n in primes():
        if n < 100:
            print(n)
        else:
            break
    
    
    

    廖雪峰老师博客

    展开全文
  • python素数-python求质数的3种方法

    千次阅读 2020-11-11 13:46:58
    本文为大家分享了多种方法求质数python实现代码,供大家参考,具体内容如下题目要求是所有小于n的质数的个数。求质数方法1:穷举法:根据定义循环判断该数除以比他小的每个自然数(大于1),如果有能被他整除的就...
  • Python求质数

    2020-03-08 16:15:52
    代码 #!/usr/bin/env python ...# @FileName :求质数.py # @Time :2020/3/8 13:42 # @Author :anqixiang # @Function :1~100之间的质数 ''' 1.1不是质数 2.只能被1和自身整除的才是质数 ''' prime_num = [] ...
  • #如果要计算时间,请添加一些代码(如下)import timestart1 = time.time()#方法1for i in range(2,1000 + 1): #用变量i从2-1000循环(因为1不是质数,且比较特殊),作为要测试的数字,Python中是循环到目标数字减一...
  • python 求素数

    2020-01-16 11:07:03
    def primenumber(start,end): if start>=2: for n in range(start,end+1): for x in range(start,n): if n % x == 0: print(n,'equals',x,'*',n//...
  • python求质数

    2019-05-01 22:55:52
    质数:又称素数,乘法因子只有1和它自身的自然数;显然,素数肯定是奇数,而奇数却不一定是素数。如:9是奇数,但是它还有3这个乘法因子。 那么如何判断一个数是否为质数呢? 先从乘法因子讨论,一个自然数的乘法...
  • Python 求素数

    2018-07-20 15:33:45
    #先构造一个从3开始的奇数序列 def _odd_iter(): n=1 while True: n=n+2 yield n def _not_divisible(n):#定义一个筛选器 ...def primes():#最后定义个生成器,不断返回下一个素数 yield 2 it=...
  • python求质数的3种方法

    2020-09-20 02:16:43
    主要为大家详细介绍了python求质数的多种方法,多种方法求质数的实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • python 求质数

    2018-06-12 16:09:36
    #!/usr/bin/env python n = 100 i = 2 while i &lt; n: j = 2 while i/j &gt;= j: if i%j == 0: break j += 1 else: print i i += 1
  • python求素数示例分享

    2020-12-24 10:25:54
    复制代码 代码如下:# 判断是否是素数... 您可能感兴趣的文章:Python实现输出某区间范围内全部素数的方法Python求出0~100以内的所有素数Python 判断是否为质数素数的实例Python编程判断一个正整数是否为素数的方法使
  • # -*- coding: UTF-8 -*- from d1 import f1 @f1 def h(): i = 2 while i <... print(i, " 是素数") i = i + 1 print("Good bye!") h() >>>... >>>cost 0.012665987014770508
  • Python 求素数质数

    2020-07-13 14:10:13
    def is_prime(x): for i in range(2,x): j = 2 while i % j != 0: j += 1 if j == i: print(i) is_prime(10) 这里是引用

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 22,635
精华内容 9,054
关键字:

python求素数

python 订阅