在Python中,判断一个数是否为素数可以通过以下几种方法:
暴力枚举法
```python
def is_prime(x):
if x == 1:
return False
for i in range(2, x):
if x % i == 0:
return False
return True
优化枚举法 (只需检查到`sqrt(x)`):
```python
import math
def is_prime(x):
if x < 2:
return False
for i in range(2, int(math.sqrt(x)) + 1):
if x % i == 0:
return False
return True
使用`for-else`语句
```python
def is_prime(x):
if x == 1:
return False
for i in range(2, x):
if x % i == 0:
return False
else:
continue
else:
return True
使用`filter`函数
```python
def is_prime(x):
if x <= 1:
return False
return all(x % i for i in range(2, int(math.sqrt(x)) + 1) if x % i != 0)
使用`math.isqrt`函数(Python 3.8及以上版本):
```python
import math
def is_prime(x):
if x <= 1:
return False
for i in range(2, math.isqrt(x) + 1):
if x % i == 0:
return False
return True
你可以选择以上任意一种方法来判断一个数是否为素数。如果需要判断多个数是否为素数,可以将这些方法放入一个循环中,并对每个数调用`is_prime`函数。
例如,判断101到200之间的每个数是否为素数:
```python
for i in range(101, 201):
if is_prime(i):
print(f"{i} 是素数")
else:
print(f"{i} 不是素数")