欢迎访问宙启技术站
智能推送

使用Python编写的isPrime()函数:判断给定数字是否为素数

发布时间:2023-12-11 06:17:39

以下是使用Python编写的isPrime()函数,用于判断给定数字是否为素数:

import math

def isPrime(n):
    # 判断输入是否为整数
    if not isinstance(n, int):
        print("输入必须为整数")
        return False
    
    # 判断输入是否大于1
    if n <= 1:
        return False
    
    # 判断n是否为2或奇数
    if n == 2 or n == 3:
        return True
    elif n % 2 == 0:
        return False
    
    # 判断n是否能被2到根号n之间的奇数整除
    square_root = int(math.sqrt(n)) + 1
    for i in range(3, square_root, 2):
        if n % i == 0:
            return False
    
    return True

使用示例:

# 判断数字17是否为素数
if isPrime(17):
    print("17是素数")
else:
    print("17不是素数")
    
# 判断数字20是否为素数
if isPrime(20):
    print("20是素数")
else:
    print("20不是素数")

运行以上代码,输出结果为:

17是素数
20不是素数

其中,isPrime()函数的工作原理如下:

1. 首先,检查输入是否为整数。若不是整数,则打印错误信息并返回False。

2. 其次,判断输入是否大于1。若小于等于1,则返回False。

3. 然后,判断输入是否为2或奇数(除2外不能被偶数整除)。若是2或3,则返回True。若为偶数,则返回False。

4. 最后,判断输入是否能被2到根号n之间的奇数整除(根号n取整数部分+1)。若能整除,则返回False。若不能整除,则返回True,证明为素数。