怎样快速地看出一个数是否为质数?(求好方法)

来源:百度知道 编辑:UC知道 时间:2024/05/03 20:37:43
因为我们提优班有一道题:分解质因数(写成质因数为底的幂的连乘积)
1.593
2.1859
3.1287
前两个我分了好久,把1-100的质数都试了,但是还没试出来,所以我想问一下
怎样快速地看出一个数是否为质数?(求好方法)
有丰厚悬赏分!!!!!!!!!!!!!!!!!

末尾是0或5的肯定不是,因为它们是5的倍数,末尾是0.2.4.6.8的肯定也不是,因为,它们是2的倍数,一个数的数字之和是3肯定也不是,因为它们是3的倍数,还有,质数除了2以外其他的都是单数

先确认那个数是不是偶数或5的倍数,如果是则是合数。
然后再分别除以3和7,如有余数,则是质数,反之,就是合数。

1 朴素筛法,就是直接试除
2 若a是n的因子,那么n/a也是n的因子,所以如果n有一个大于1的真因子,则必有一个不大于n的1/2次方的因子
3 进一步的,如n是合数,他必有一个素因子不大于n的1/2次方,如要检测一个m以内的数是否为素数需事先建立一个m的1/2次方以内素数表。
4 Miller-Rabbin算法
5 概率算法
6 无条件的素数测试(包含APR算法 Jacobi sum测试 等)
7.n的n次幂除以n,若余数为2,则n为质数

只要这数只能被它自己和1除就行