鱼C论坛

 找回密码
 立即注册
查看: 2064|回复: 1

[技术交流] Python 获取和判断质数

[复制链接]
发表于 2019-11-9 12:54:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
def is_prime(num: int) -> bool:
    """
    判断一个数是不是质数

    参数
    ----------
    num:需要判断的质数
    """
    if num == 2:
        return False
    for a in range(2, num // 2 + 1):
        if num % a == 0:
            return False
    return True


def get_prime(start: int, stop: int) -> list:
    """
    获取从 start 到 stop 的质数

    参数
    ----------
    start:开始的范围
    stop:停止的范围(不包括)
    """
    assert start >= 2
    return list(filter(is_prime, range(start, stop)))

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-16 14:32:38 | 显示全部楼层
更加高效的版本
def isPrime(num):
        num=abs(num)
        if num<=2 or not num&1:
                return False
        for i in range(3,int(num**0.5),2):
                if not num%i:
                        return False
        return True
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-24 23:37

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表