python定义一个判断质数的函数

  • Post category:Python

接下来我将详细讲解如何使用Python定义一个判断质数的函数。

定义判断质数的函数

判断质数的函数需要传入一个正整数作为参数,返回一个布尔值,表示该数是否为质数。

在Python中,可以使用如下代码定义一个判断质数的函数:

def is_prime(n):
    """
    判断一个正整数是否为质数

    参数:
        n: 正整数

    返回值:
        True: n是质数
        False: n不是质数
    """
    if n <= 1:
        return False

    for i in range(2, int(n**0.5) + 1):
        if n % i == 0:
            return False

    return True

以上代码中,使用def关键字定义了一个名为is_prime的函数,函数接受一个参数n,表示要判断的正整数。

接下来,先判断传入的正整数是否小于或等于1,如果小于或等于1,则直接返回False,因为1不是质数。

然后,使用一个for循环,从2到该正整数的平方根进行遍历,并在遍历的过程中判断是否有数可以被该正整数整除。如果有,就表示该正整数不是质数,直接返回False。如果循环结束后,没有找到能够整除该正整数的数,就表示该正整数是质数,返回True

代码实例

下面,再给出两个实际的判断质数的代码示例:

示例一:判断 29 是否为质数

n = 29

if is_prime(n):
    print(f"{n} 是质数")
else:
    print(f"{n} 不是质数")

以上代码中,首先定义了一个变量n,它的值为29。

然后,使用if语句判断is_prime(n)的返回值,如果返回True,就说明29是质数,输出“29 是质数”。否则,输出“29 不是质数”。

示例二:判断 1000000000039 是否为质数

n = 1000000000039

if is_prime(n):
    print(f"{n} 是质数")
else:
    print(f"{n} 不是质数")

以上代码中,同样首先定义了一个变量n,它的值为1000000000039。

然后,调用is_prime(n)函数进行判断,输出相应的结果。

由于1000000000039是一个很大的数,如果使用暴力枚举的方法进行判断,会非常耗时。但是,由于该函数利用了这样一个性质:如果一个数不是质数,那么它一定可以被某个小于或等于它平方根的数整除,所以只需要判断2到该数平方根的数即可。这样,即使是大数也可以很快地判断出是否为质数。