在Python中,定义一个函数来检查一个数是否为素数是一个常见的编程任务。以下是一个简洁的函数定义,它利用了数学上的优化,即一个合数(非素数)必定有一个因子不大于它的平方根。
import math
def is_prime(n):
if n <= 1:
return False
for i in range(2, int(math.sqrt(n)) + 1):
if n % i == 0:
return False
return True
这个函数首先检查`n`是否小于或等于1,因为1和负数不是素数。然后,它遍历从2到`n`的平方根的所有整数,如果`n`能被其中任何一个整数整除,则`n`不是素数,函数返回`False`。如果循环结束没有找到能整除`n`的整数,则`n`是素数,函数返回`True`。
你可以使用这个函数来检查任意一个自然数是否为素数。例如:
print(is_prime(2)) 输出: True
print(is_prime(4)) 输出: False
print(is_prime(7)) 输出: True
这个函数是一个简单而有效的方法来判断一个数是否为素数