简介
在数学中,质数是大于 1 的自然数,且不是两个较小自然数的乘积。例如,5 是质数,因为将它写成乘积的唯一方式 1×5 或 5×1 都涉及到 5 本身。然而,4 不是质数,因为它是两个都比 4 小的数的乘积(2×2)。在这个挑战中,你需要编写一个 Python 函数来检查给定的数是否为质数。
判断数字是否为质数
编写一个名为 is_prime(n) 的 Python 函数,该函数接受一个整数 n 作为输入,如果该数字是质数,则返回 True,否则返回 False。要解决这个问题,你需要遵循以下规则:
- 如果数字为 0、1、负数或 2 的倍数,则返回
False。 - 使用
all()和range()检查从 3 到给定数字的平方根的数字。 - 如果没有数字能整除给定数字,则返回
True,否则返回False。
from math import sqrt
def is_prime(n):
if n <= 1 or (n % 2 == 0 and n > 2):
return False
return all(n % i for i in range(3, int(sqrt(n)) + 1, 2))
is_prime(11) ## True
总结
在这个挑战中,你学习了如何使用 Python 检查给定的数字是否为质数。你使用了 all() 和 range() 函数来检查从 3 到给定数字的平方根的数字。你还学习了如果没有数字能整除给定数字则返回 True,否则返回 False 的方法。