4.编写一个函数,给定一个正整数 n ,返回1~ n 的所有质数。质数是指一个大于1的自 然数,除了1和它自身外,不能被其他自然数整除的数。
时间: 2024-12-13 20:23:24 浏览: 11
你可以编写一个名为 `get_primes` 的函数,该函数接受一个正整数 `n` 作为输入参数,然后返回从1到 `n` 范围内的所有质数。下面是一个简单的实现,使用了埃拉托斯特尼筛法(Sieve of Eratosthenes)来提高查找效率:
```python
def is_prime(num):
if num <= 1:
return False
elif num == 2:
return True
elif num % 2 == 0:
return False
else:
for i in range(3, int(num**0.5) + 1, 2):
if num % i == 0:
return False
return True
def get_primes(n):
primes = []
for i in range(2, n+1):
if is_prime(i):
primes.append(i)
return primes
# 测试函数
n = 20
result = get_primes(n)
print(f"1~{n}的所有质数:{result}")
```
在这个函数中,我们首先定义了一个辅助函数 `is_prime` 来检查一个数是否为质数。接着,在 `get_primes` 函数里,我们遍历从2到n的所有整数,对每个数调用 `is_prime` 函数,如果是质数就将其加入 `primes` 列表。
阅读全文