python中判断数字是否为质数的方法

答案:判断质数只需检查2到√n的因数。例如is_prime(7)返回True,而is_prime(9)返回False,因3×3=9,故9非质数。

判断一个数字是否为质数,是Python编程中的常见问题。质数是指大于1且只能被1和它本身整除的自然数。例如:2、3、5、7、11等。

基本思路

要判断一个数n是否为质数,最直接的方法是尝试从2到√n之间的所有整数是否能整除n。如果存在能整除的数,则n不是质数;否则就是质数。

只需要检查到√n是因为:如果n有一个大于√n的因数,那么必然对应一个小于√n的因数。因此无需检查更大的数。

简单实现代码

def is_prime(n): if n return Falseif n == 2: return Trueif n % 2 == 0: return False i = 3 while i * i if n % i == 0: return False i += 2 return True

说明:

  • n小于2直接返回False
  • 等于2返回True(唯一偶数质数)
  • 大于2的偶数都不是质数
  • 只检查奇数因子,从3开始,每次加2,提升效率
  • 循环条件i*i

使用示例

print(is_prime(11)) # 输出 True
print(is_prime(15)) # 输出 False
print(is_prime(97)) # 输出 True

这个方法在处理一般大小的整数时效率足够,适合大多数场景。对于大量数字或非常大的数值,可考虑更高级算法如米勒-拉宾素性测试,但上述方法已满足基础需求。

基本上就这些。