如何编写Python函数判断用户输入数值是否为素数并返回对应结果
Python素数判断函数实现
核心逻辑说明
素数的定义为大于1的自然数,且除了1和它本身之外没有其他正因数,实现时做了效率优化,仅需要遍历到输入值的平方根即可完成判断,不需要全量遍历到输入值本身。
完整函数代码
import math def is_prime(num): # 校验输入是否为整数 if not isinstance(num, int): print("输入值不是合法的正整数,请重新输入") return False # 小于2的数都不符合素数定义 if num < 2: print(f"{num} 不是素数") return False # 仅遍历到平方根即可完成校验 for i in range(2, int(math.sqrt(num)) + 1): if num % i == 0: print(f"{num} 不是素数,可被 {i} 整除") return False print(f"{num} 是素数") return True
调用示例
直接传入整数参数即可调用,效果如下:
- 调用
is_prime(17)会输出17 是素数,同时返回True - 调用
is_prime(15)会输出15 不是素数,可被 3 整除,同时返回False - 调用
is_prime(1)会输出1 不是素数,同时返回False
可选优化说明
如果需要兼容2.0这类值为整数的浮点数输入,可以在类型校验步骤增加逻辑:如果是float类型且小数部分为0,先转为整数再做后续判断。
内容的提问来源于stack exchange,提问作者Spicy Meatballs
相关产品推荐
相关产品推荐

