编写Python函数,用多种函数方法判断一个数字是否为素数,是则返回字符串 YES,否则返回字符
时间: 2023-10-24 22:35:12 浏览: 305
好的,下面是代码实现:
方法一:使用常规方法判断素数
```python
def is_prime1(n):
if n < 2: # 小于2的数不是素数
return "NO"
for i in range(2, int(n**0.5) + 1): # 判断是否有因子
if n % i == 0:
return "NO"
return "YES"
```
方法二:使用 all() 函数和生成器表达式判断素数
```python
def is_prime2(n):
return "YES" if n > 1 and all(n % i != 0 for i in range(2, int(n**0.5) + 1)) else "NO"
```
方法三:使用 filter() 函数和 lambda 表达式判断素数
```python
def is_prime3(n):
return "YES" if n > 1 and len(list(filter(lambda x: n % x == 0, range(2, int(n**0.5) + 1)))) == 0 else "NO"
```
使用方法:
```python
print(is_prime1(17)) # YES
print(is_prime2(17)) # YES
print(is_prime3(17)) # YES
print(is_prime1(21)) # NO
print(is_prime2(21)) # NO
print(is_prime3(21)) # NO
```
以上三种方法都可以判断正整数是否为素数,具体使用哪种方法可以根据实际情况选择。
阅读全文