如何使用Python检查数字是否为质数?

解决此问题的方法所用的原理是将给定的数除以3的平方根,一个数的平方根是最大的可能因数,因此,没有必要检查该数是否可被其他数整除来确定它是质数。

对于所有可被2整除且小于2的数字,该函数返回false。对于其他所有整数,返回值)如果该函数可被其平方根之任何数整除,则该函数为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('enter a number'))
if is_prime(num)==True:
    print ("{} is a prime number".format(num))
else:
    print ("{} is not a prime number".format(num))

输出结果

上述程序的示例运行-

enter a number24
24 is not a prime number
enter a number47
47 is a prime number