Python 算法之 求素数、质数

Python 如何求素数、质数


素数、质数(重点)

先明白什么是素数😣

质数,英文名:Prime number,又称为素数,指的是值大于1的 自然数中,除了1和该数自身外,无法被其他自然数整除的数,大于1的自然数若不是素数,则称之为合数,注意1既不是质数也不是合数。

题目
统计所有小于非负整数 n 的质数的数量。

示例 输入 输出 描述
n=10 4 小于 10 的质数有 [ 2, 3, 5, 7 ],一共 4 个
n=20 8 小于 20 的质数有 [2, 3, 5, 7, 11, 13, 17, 19],一共 8 个
n=1 0 素数指的是值大于1的自然数中
n=0 0 指的是值大于1的 自然数中

方法一:枚举

这种方法简单粗暴,我喜欢称之为暴力法

直接循环

def countprimes(n: int) -> int:
    res = 0
    for i in range(2, n):
        for k in range(2, int(i ** 0.5)+1):  # 求根,向下取整再+1
            if i % k == 0:                   # 能整除余数必定为 0
                break
        else:                                # 循环正常结束,没有遇到中止即为素数
            res += 1
    return res
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值