python用lambda函数判断一个数是否为素数
时间: 2023-05-29 11:04:58 浏览: 103
下面是一个使用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, "不是素数")`
阅读全文