python素数个数
时间: 2023-06-30 20:27:37 浏览: 91
以下是一个简单的 Python 代码,用于计算从 1 到指定数字的素数个数。
``` python
def count_primes(n):
if n < 2:
return 0
primes = [2]
for i in range(3, n+1, 2):
if all(i % p != 0 for p in primes):
primes.append(i)
return len(primes)
```
使用该函数,您可以计算从 1 到任意数字的素数个数,例如:
``` python
>>> count_primes(10)
4
>>> count_primes(20)
8
>>> count_primes(100)
25
```
相关问题
python计算素数个数
以下是一个简单的 Python 代码,用于计算小于等于给定正整数 n 的素数个数:
```python
def count_primes(n):
if n < 2:
return 0
# 初始化一个布尔类型的列表,用于记录每个数字是否为素数
is_prime = [True] * (n+1)
is_prime[0] = is_prime[1] = False
# 标记所有的合数
for i in range(2, int(n ** 0.5) + 1):
if is_prime[i]:
for j in range(i*i, n+1, i):
is_prime[j] = False
# 统计素数个数
count = 0
for i in range(2, n+1):
if is_prime[i]:
count += 1
return count
```
这个函数的实现思路是使用埃拉托色尼筛法来标记素数和合数,具体步骤如下:
1. 初始化一个布尔类型的列表,用于记录每个数字是否为素数,将前两个数字(0 和 1)标记为 False。
2. 从 2 开始循环到 $\sqrt{n}$,如果当前数字为素数,则将所有的其倍数标记为合数。
3. 统计布尔类型列表中值为 True 的元素个数,即为素数的个数。
注意,该算法的时间复杂度为 $O(n \log \log n)$,其中 $n$ 是输入的正整数。
python求素数个数
以下是 Python 中求素数个数的代码:
```python
def is_prime(n):
"""
判断一个数是否为素数
"""
if n < 2:
return False
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
return True
def count_primes(n):
"""
统计小于等于n的素数个数
"""
count = 0
for i in range(2, n+1):
if is_prime(i):
count += 1
return count
```
你可以调用 `count_primes(n)` 函数来统计小于等于 `n` 的素数个数。
阅读全文