如何在Python 中判断一个数是否为素数
时间: 2024-11-16 14:09:19 浏览: 4
大学Python程序题题库.doc
在Python中,可以使用以下几种方法来判断一个数是否为素数:
1. **朴素方法**:直接遍历从2到该数的平方根,如果能整除,则不是素数。
```python
def is_prime(n):
if n < 2:
return False
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
return True
```
2. **埃拉托斯特尼筛法**:适用于大量数据,通过筛选去除非素数,效率较高。
```python
def sieve_of_eratosthenes(n):
primes = [True] * (n+1)
primes[0], primes[1] = False, 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 primes[n] if n > 1 else False
# 使用方法
is_prime_with_sieve = sieve_of_eratosthenes(17)
```
3. **质数判断优化**:利用数学性质,如6k±1的形式,减少不必要的检查。
```python
def is_prime_optimized(n):
if n <= 1:
return False
if n <= 3:
return True
if n % 2 == 0 or n % 3 == 0:
return False
i = 5
while i * i <= n:
if n % i == 0 or n % (i + 2) == 0:
return False
i += 6
return True
```
阅读全文