求1-1000之间质数的个数。python
时间: 2024-10-09 13:07:09 浏览: 61
83aefc1b24afa4755f3b2857b8812042
在Python中,我们可以使用一种称为“埃拉托斯特尼筛法”(Sieve of Eratosthenes)的经典算法来找出1到1000之间的所有质数。以下是实现这个算法的一个简单版本:
```python
def count_primes(n):
primes = [True] * (n + 1) # 初始化所有数字为质数
primes[0], primes[1] = False, False # 0和1不是质数
for num in range(2, int(n**0.5) + 1): # 只需要检查到√n即可
if primes[num]:
for i in range(num*num, n+1, num): # 把num的倍数标记为非质数
primes[i] = False
# 统计并返回质数个数
count = len([i for i in range(2, n+1) if primes[i]])
return count
print(count_primes(1000))
```
这段代码会计算出1到1000之间有多少个质数,并打印结果。注意,为了效率,我们只检查每个数及其小于它的平方根的倍数,因为大于该数的因子必定有一个小于等于它本身的平方根。
阅读全文