求不超过n的素数,Python
时间: 2024-09-10 22:24:30 浏览: 58
算法领域-输出n以内的所有的素数-python实现
在Python中,我们可以使用Sieve of Eratosthenes算法来找出所有小于等于给定整数n的素数。这是一种古老且高效的筛选法。下面是一个简单的实现:
```python
def find_primes(n):
primes = [True] * (n + 1) # 初始化一个布尔数组,假设所有数字都是素数
primes[0], primes[1] = False, False # 0和1不是素数
# 遍历从2到sqrt(n),对每个数i,如果它是素数,则将它的倍数标记为非素数
for i in range(2, int(n**0.5) + 1):
if primes[i]:
for j in range(i*i, n + 1, i): # 跳过已知非素数
primes[j] = False
# 返回大于1并且为真的索引,对应的就是不超过n的素数
return [i for i, is_prime in enumerate(primes) if is_prime and i > 1]
# 示例
n = 30
prime_numbers = find_primes(n)
print("不超过{}的素数有:".format(n), prime_numbers)
阅读全文