输入一个正整数n,求n以内的素数。输入一个正整数n,求n以内的素数。请使用数组用筛选法实现
时间: 2023-05-21 21:01:43 浏览: 281
输入整数n,输出1~n的素数
以下是使用筛选法实现求n以内素数的代码:
```python
def find_primes(n):
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
primes = [i for i in range(n+1) if is_prime[i]]
return primes
```
这个函数接受一个正整数n作为参数,返回一个列表,其中包含了所有小于等于n的素数。它使用了筛选法,首先初始化一个长度为n+1的布尔数组is_prime,其中is_prime[i]表示i是否为素数。然后从2开始遍历到n的平方根,如果当前数i是素数,则将i的倍数都标记为非素数。最后遍历一遍is_prime数组,将所有为True的下标加入到primes列表中,即为答案。
阅读全文