在Python中,判断一个数是否为素数可以通过定义一个函数 `is_prime` 来实现。下面是一个简洁的函数实现,它利用了素数定义和数学知识来提高效率:
import math
def is_prime(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
这个函数首先排除了小于等于1的数,然后确认2和3是素数。接着,它检查n是否能被2或3整除。之后,函数通过一个循环从5开始,以6为步长(即检查5, 11, 17, ... 和 7, 13, 19, ...),检查n是否能被这些数整除。这是因为所有大于3的素数都可以表示为6k±1的形式。循环继续直到i的平方大于n,这时如果n是素数,循环就会结束而不会执行break语句,函数返回True。否则,返回False。
要使用这个函数,你可以调用它并传入你想要检查的整数作为参数,例如:
print(is_prime(29)) 输出:True,因为29是素数
你还可以使用这个函数来找出一定范围内的所有素数:
prime_numbers = [x for x in range(1, 101) if is_prime(x)]
print(prime_numbers) 输出1到100之间的所有素数