Python 如何判断一个数是否为素数
什么是素数
素数又叫质数,指大于1的自然数中,除了1和本身外没有其他因数的数。比如2、3、5、7、11等都是素数。
素数的特点
素数除了1和本身外没有其他因数,因此可以根据这个特点来判断一个数是否为素数。具体判断方法可以分为以下几种:
方法一:暴力法
最直接的方法就是遍历2到这个数的平方根之间的所有数,看是否有可以整除这个数的数。如果找到可以整除的数,那么这个数就不是素数,否则就是素数。
运行结果为:
方法二:素数定理
厄拉托斯特尼筛法,素数定理确定了n以内所有素数的一个上界,由此可以通过筛选法来判断一个数是否为素数。筛选法具体步骤如下:
- 创建一个长度为n+1的布尔数组prime_list,初始值都设置为True;
- 遍历2到n的平方根之间的所有数,如果某个数是素数,则将其倍数在数组中设置为False;
- 最终数组中仍然为True的数即为素数。
运行结果为:
方法三:费马小定理
对于一个数n,费马小定理表明如果n是素数那么a^(n-1) ≡ 1 mod n,可以通过这个特性来判断一个数是否为素数。
运行结果为:
总结
通过以上几种方法,我们可以判断一个数是否为素数。在实际应用中,各种方法都有其优缺点,可以根据具体需求选择合适的方法来判断一个数是否为素数。