如何使用Python检查一个数是否为素数?
以下解决此问题的原则是将给定的数字除以从3到它的平方根的所有数字,数字的平方根是最大的可能因子,超过这个因子判断它是否是素数就无需再次检查可知。
对于所有可被2整除且小于2的数字,该函数返回false。对于其他数字,如果它可被其平方根以下的任何数整除,则all(所有)函数的返回值将为false,如果它不被任何数字整除,则返回true。
示例
def is_prime(a):
if a < 2:
return False
elif a!=2 and a % 2 == 0:
return False
else:
return all (a % i for i in range(3, int(a**0.5)+1) )
num=int(input('输入一个数字'))
if is_prime(num)==True:
print ("{} 是一个素数".format(num))
else:
print ("{} 不是一个素数".format(num))
输出
上述程序的示例运行如下:
输入一个数字24
24 不是一个素数
输入一个数字47
47 是一个素数
极客教程