python定义函数筛质数
时间: 2023-08-29 12:12:49 浏览: 88
以下是一个python定义函数筛质数的示例代码:
```python
def sieve_of_eratosthenes(n):
# 创建长度为n+1的数组,并将其全部赋值为True
primes = [True] * (n+1)
# 0和1不是质数,将其标记为False
primes[0] = primes[1] = False
# 从2开始遍历数组,如果当前数字是质数,则将其倍数标记为False
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
# 返回所有的质数
return [i for i in range(2, n+1) if primes[i]]
# 调用函数,筛出100以内的质数
print(sieve_of_eratosthenes(100))
```
该函数使用了埃拉托斯特尼筛法,将所有小于等于n的质数筛选出来,并返回一个列表。代码中先创建一个长度为n+1的布尔数组,将其全部赋值为True,然后从2开始遍历数组,如果当前数字是质数,则将其倍数标记为False。最后返回所有的质数。
相关问题
python定义函数求素数
可以使用以下代码定义一个求素数的函数:
```python
def is_prime(num):
"""
判断一个数是否为素数
"""
if num < 2:
return False
for i in range(2, int(num ** 0.5) + 1):
if num % i == 0:
return False
return True
```
上面的代码中,我们定义了一个名为 `is_prime` 的函数,它接受一个参数 `num`,用于判断该数是否为素数。如果该数小于 2,则直接返回 False,因为小于 2 的数都不是素数。否则,我们使用一个循环从 2 到该数的平方根进行遍历,如果该数能被其中的任意一个数整除,则说明不是素数,返回 False。如果循环结束后都没有返回 False,就说明该数是素数,返回 True。
这个函数可以用来判断任意一个数是否为素数,例如:
```python
print(is_prime(7)) # True
print(is_prime(10)) # False
```
如果你需要求一定范围内的素数,可以再定义一个函数,如下所示:
```python
def get_primes(start, end):
"""
获取指定范围内的所有素数
"""
primes = []
for num in range(start, end + 1):
if is_prime(num):
primes.append(num)
return primes
```
这个函数接受两个参数 `start` 和 `end`,表示要获取素数的范围。我们定义一个空列表 `primes` 来存储找到的素数,然后使用一个循环遍历该范围内的所有数,如果是素数,则加入到 `primes` 列表中。最后返回 `primes` 列表。
例如,我们可以使用下面的代码来获取 1 到 100 之间的所有素数:
```python
primes = get_primes(1, 100)
print(primes)
```
输出结果为:
```
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]
```
python定义函数判断素数
可以使用以下代码定义一个函数,来判断一个数是否为素数:
```python
def is_prime(num):
if num < 2:
return False
for i in range(2, int(num ** 0.5) + 1):
if num % i == 0:
return False
return True
```
函数的参数是要判断的数,函数返回值为布尔值,如果是素数则返回True,否则返回False。
该函数的实现原理是:从2到num开方向下取整的范围内,判断num是否能被整除,如果存在一个数能被整除,则num不是素数,否则num是素数。
阅读全文