如何快速验证一个数是否为素数

2024-05-04 01:01

1. 如何快速验证一个数是否为素数

  方法一、用试除法判断一个自然数a是不是质数时,用各个质数从小到大依次去除a,如果到某一个质数正好整除,这个a就可以断定不是质数;如果不能整除,当不完全商又小于这个质数时,就不必再继续试除,可以断定a必然是质数.

     方法二、只要找出x为一个奇数和一个偶数平方差的形式(这是一定的)便可以a2-b2=(a+b)(a-b)便是两个因数。
      例如26341,先找出比26341大的一个偶平方数,26896,与它的差是555,肯定不是平方数,再下一个平方数(其实考虑到(x+1)^2=x2+2x+1,因此直接将原数加上2x+1就行了,用不着算x+1的平方),27556, 差1215,也不是,然后28224个位与1的差为3,直接排除,下一个2559也不是(一看就知道它等于50^2+59)。再下个差为3直接排出,再下个、再再下个……找出规律来就很快了,最后221^2=48841,48841-26341=22500,很明显22500=150^2,就分解出来了26341=71×371。

如何快速验证一个数是否为素数

2. 判断素数的算法


3. 判断素数的5种方法

判断素数的5种方法如下:
法1、素合分流律
《n级自然数表》提升的极限是两个无限逼近100%的《全素数表》和《全合数表》的有机组合。
法2、素数对称律
素数总是以△=〔m1m2…mn〕为公变周期,沿着△和△/2轴线,反复无穷地等距离对称出现。虽然有对称性破坏,但这种对称破坏率会随着n值无限提升而无限向零靠拢,素数对称率无限逼近100%。
法3、素数对称律(或称:哥德巴赫定理)
以任意自然数N(包括0和1)为原点的项标轴正、负方向两端等距离对称分布着无穷的素数对,周期性,反复无穷地合成2N。

法4、素数极限分布律
《n级素数表》提升的极限是一个横平竖直,整齐排列,有规律(呈等差数列纵队),有秩序(从mn+1起由小到大)的大于mn的原生态《全素数表》往无穷方向延伸。(附素数极限公式分布图于后)
法5、素数普遍公式
设△=〔m1m2…mn〕是n个顺序素数的最小公倍数,mn+1是第n+1个素数,任意非1自然数N若满足:
(N △)=1 且N<m2n+1则N一定是新生素数。

判断素数的5种方法

4. 判断素数的方法

判断素数的方法:判断n是否为素数只需用2~n/2或2~n之间的数去除就可以了,常用2~n/2,因为一个数的一半的平方大于其本身是从5开始的,解方程:n/2的平方>n 。
即一个数n的两个因数不能同时比n/2大。就可以说一个数若不是素数则一定在2~n/2之间有因数。而且2,3也是符合下面程序的。
素数(又称质数):就是除了1和它本身,没有其他因子的整数。注:1既不是素数,也不是合数。

例如17是素数,因为它不能被2~16间。任意一整数整除。因此判断一个整数m是否为素数,只需用2~m-1之间的每一个整数去除,如果都不能被整除,那么m就是一个素数。
其实可以简化,m不必被2~m-1之间的每一个整数去除,只需被2~根号m之间的每个数去除就可以了。例如判别17是否为素数,只需使2~4之间的每一个整数去除。为什么可以做如此简化呢?

因为如果m能被2~m-1之间任意整数整除,如果这个数大于根号m,那这个数必定对应的还有一个比根号m小的因子(以16为例,2、8是它的因子,8大于4,2小于4)。

5. 判断素数的5种方法

判断素数的5种方法如下:
法1、素合分流律
《n级自然数表》提升的极限是两个无限逼近100%的《全素数表》和《全合数表》的有机组合。
法2、素数对称律
素数总是以△=〔m1m2…mn〕为公变周期,沿着△和△/2轴线,反复无穷地等距离对称出现。虽然有对称性破坏,但这种对称破坏率会随着n值无限提升而无限向零靠拢,素数对称率无限逼近100%。
法3、素数对称律(或称:哥德巴赫定理)
以任意自然数N(包括0和1)为原点的项标轴正、负方向两端等距离对称分布着无穷的素数对,周期性,反复无穷地合成2N。

法4、素数极限分布律
《n级素数表》提升的极限是一个横平竖直,整齐排列,有规律(呈等差数列纵队),有秩序(从mn+1起由小到大)的大于mn的原生态《全素数表》往无穷方向延伸。(附素数极限公式分布图于后)
法5、素数普遍公式
设△=〔m1m2…mn〕是n个顺序素数的最小公倍数,mn+1是第n+1个素数,任意非1自然数N若满足:
(N △)=1 且N<m2n+1则N一定是新生素数。

判断素数的5种方法

6. 判断素数方法


7. 判断素数的方法


判断素数的方法

8. 什么是素数算法

素数即只能被1和其本身整除的数,算法判断n是否为素数只需用2~n/2之间的数去除就可以了。因为一个数的一半的平方大于其本身是从5开始的,解方程:n/2的平方>n 。即一个数n的两个因数不能同时比n/2大。就可以说一个数若不是素数则一定在2~n/2之间有因数。而且2,3也是符合下面程序的。


素数(又称质数):就是除了1和它本身,没有其他因子的整数。注:1不是素数。 

C语言代码算法:
#include    
main(){   
int i,j,k=0;   
for(i=2;i<=1000;i++)
{   
for(j=2;j<=i/2;j++)   
if(i%j==0)break;   
if(j>i/2)   
{printf("%d ",i);}   
}   
}