判断素数的算法
一个正整数如果只能被1和它本身整除,那么它就是素数。判断素数的算法有以下几种:
1.试除法:从2开始,依次判断该数能否被2、3、4、……、它本身-1整除,如果都不能整除,那么该数就是素数。但是该算法效率不高,对于大数不太适用。
2.厄拉多塞筛法:首先将2到n的自然数列出来,然后把2的倍数筛掉(除2以外),把3的倍数筛掉(除3以外),把4的倍数筛掉(除4以外),以此类推,直到筛不出任何数为止。剩下的所有数就都是素数了。该算法效率较高。
3.米勒-拉宾素性检验(Miller-Rabin Primality Test):该算法借助费马小定理,通过若干次随机检验判断一个数是否为素数,其效率为O(k log^3 n),其中k为检验次数。该算法适用于大数的判断。
还有其他一些算法,比如Baillie-PSW素性检验、AKS测试等,但是这些算法涉及到高级数学知识,不太容易理解。