用lambda函数判断一个数是否素数
时间: 2023-05-31 14:06:31 浏览: 74
```
is_prime = lambda n: n > 1 and all(n % i != 0 for i in range(2, int(n ** 0.5) + 1))
```
解释:
1. `n > 1`:首先要保证这个数大于1,因为1不是素数。
2. `for i in range(2, int(n ** 0.5) + 1)`:从2开始到n开方向上取整再加1的范围内遍历所有可能的因子。
3. `n % i != 0`:如果n能被i整除,说明n不是素数,返回False。
4. `all(...)`:如果所有的i都不能整除n,说明n是素数,返回True。
相关问题
python用lambda函数判断一个数是否为素数
下面是一个使用lambda函数判断一个数是否为素数的Python程序:
```
is_prime = lambda n: n > 1 and all(n % i != 0 for i in range(2, int(n**0.5) + 1))
n = int(input("请输入一个整数:"))
if is_prime(n):
print(n, "是素数")
else:
print(n, "不是素数")
```
解释:
- lambda函数定义:`is_prime = lambda n: n > 1 and all(n % i != 0 for i in range(2, int(n**0.5) + 1))`
- `n > 1`:保证n大于1,因为1不是素数。
- `all(...)`:判断n是否能被2到sqrt(n)之间的整数整除,如果都不能整除,那么n就是素数。
- `n % i != 0 for i in range(2, int(n**0.5) + 1)`:对于range(2, int(n**0.5) + 1)中的每个整数i,判断n能否被i整除。如果n能被某个i整除,那么表达式`n % i != 0`的值为False,all(...)返回False,表示n不是素数;否则表达式的值为True,all(...)继续判断下一个i,直到所有的i都判断完毕,all(...)返回True,表示n是素数。
- 输入一个整数n:`n = int(input("请输入一个整数:"))`
- 判断n是否为素数:`if is_prime(n):`
- 输出结果:`print(n, "是素数")`或`print(n, "不是素数")`
用lambda函数在python中写一个判断素数的函数
以下是使用lambda函数在Python中编写判断素数的函数:
```python
is_prime = lambda n: n > 1 and all(n % i != 0 for i in range(2, int(n ** 0.5) + 1))
```
这个lambda函数接受一个参数n,返回一个布尔值,表示n是否为素数。lambda函数中使用了all()函数和生成器表达式,判断n是否能被2到n的平方根之间的任何一个数整除。如果n大于1且不能被这些数整除,则n是素数,返回True;否则返回False。