Python快速判断素数方法

这篇具有很好参考价值的文章主要介绍了Python快速判断素数方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

代码

不废话,上代码:

def IsPrime(n):
    # 2, 3 单独处理
    if n == 2 or n == 3:
        return True
    # 不在 6 的倍数两侧的不是素数
    if n % 6 != 1 and n % 6 != 5:
        return False
    # 在 6 的倍数两侧的不一定是素数
    for i in range(5, int(n ** 0.5) + 1, 6):
        # i 的步长可以放大到 6
        if n % i == 0 or n % (i + 2) == 0:
            return False
    return True

对比

传统的判断素数函数如下:

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

运行两个函数判断素数,得到其运行时间分别如下:

number IsPrime IsPrime1
3 9.5367431640625e-07 8.58306884765625e-06
4 1.1920928955078125e-06 3.0994415283203125e-06
5 2.384185791015625e-06 1.430511474609375e-06
7 1.6689300537109375e-06 1.1920928955078125e-06
100 7.152557373046875e-07 1.6689300537109375e-06
10000 7.152557373046875e-07 1.6689300537109375e-06
100000000 4.76837158203125e-07 2.384185791015625e-06

可以看到总体上第一个判定素数函数是要快很多的,尤其对于大素数的判定。文章来源地址https://www.toymoban.com/news/detail-408348.html

到了这里,关于Python快速判断素数方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • (c语言)素数判断的四种方法

    2024年02月04日
    浏览(29)
  • C语言中判断素数的几种方法

    作为C的初学者们希望大家看看这几种判断素数的方法 既然进来了就看完把 题目要求: 判断n是否为素数。 首先我们讲一下素数的判定:素数就是只能被1或者本身整除的数,这就延伸出了几种不同的判定方法。 方法一:因为判断素数相当于就是判断这个数能不能整除2-这个数

    2024年02月11日
    浏览(35)
  • C语言素数(质数)判断的三种方法

    本文介绍了判断素数的3种方法,从素数的概念分析,确定找到素数的几个必要条件,设计思路,并将代码进行优化。此外,还使用自定义函数的形式将同样的思路进行实现。 素数,就是仅能被自身和1整除的数字。 首先我们可以提取出判断素数的三个基本条件: 素数是整数

    2024年02月04日
    浏览(33)
  • C语言--输入一个数判断是否为素数(多种方法)

     需要解决这个问题,首先我们要明白 --------什么是素数? (质数)素数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。 举个例子:4  可以 由2*2=4  和1*4 得到,不符合素数的条件,所以不是素数。                   5  只能由1*5 得到,符合素数的

    2024年01月25日
    浏览(40)
  • C语言:判断一个数是否为素数(3种方法,含注释)

    首先要先明白素数的定义:除了1和本身之外,没有其他的因数的数,即不能被其他数整除。 同时要注意,1不是素数。 以下为判断素数的3个代码: 1.要注意给m赋初值是不能为1,因为1是任何数的因数,可以被任何数整除。若初值为1,则第一步就结束循环,所有的数输出结果

    2024年02月13日
    浏览(35)
  • python_输入任意一个数,判断是否是素数

    看了一下其他答案要不是格式不对run不出来,要不就是输入项验证不全,希望答案对大家有用。 

    2023年04月09日
    浏览(41)
  • C语言判断一个数是否为素数的三种方法(详细)

             今天我们来使用C语言来实现判断一个数是否为素数,首先我们需要了解到素数的概念,素数就是只能被1和它本身整除的数。             这是第一种代码,我们来分析一下,首先创建变量i和n,这里我们i用于循环,n用来存放我们输入的数字。之后我们设置一个

    2024年04月25日
    浏览(45)
  • 蓝桥杯之素数及相关判断方法(看这一篇就够了)

    目录 一、素数及相关概念  1、素数的性质  2、有关素数的猜想  二、素数的判断方法  1、根据性质去判断  2、改进1方法(缩小比较范围√n) 3、再次分析素数的特点,得出规律 问题:枚举n以内所有素数  4、埃氏筛法(埃拉托斯特尼筛法) 5、欧拉筛法(埃氏筛法的优化

    2023年04月15日
    浏览(63)
  • Python-两种方法实现输出素数(质数)

    方案一: 程序的设计为: 1、设为被除数,取值范围可以自行设定,本例设为3-100;(1、2均不是素数) 2、设计为除数,除数的取值范围为除掉1和自身以及比自身大的数字(当被除数本身不为0时,除以比自身大的数余数一定不为零。) 3、在这两个前提下,先让固定,遍历范

    2024年02月11日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包