高效质数检测

Beginner

This tutorial is from open-source community. Access the source code

简介

在数学中,质数是大于 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 的方法。