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


308

被折叠的 条评论
为什么被折叠?



