高效质数判断算法及其JS实现
理论基础
1.质数的定义
大于1的正整数中,只能被1和自身整除的数称为质数。
正整数显然不能被大于自己的正整数整除,于是
最基本的素数判别法是:
对于正整数num( num >= 2 ),如果不能被集合[2,num]中的任何整数整除,则num为质数。
2.质数与合数
在[2,+∞)范围中的正整数只能分为两类
- 质数,是组成合数的原子,自身不可再分
- 合数,由质数相乘得到
也就是说,合数都能分成若干个质因子,例如18=2*3*3,
势必存在 最小的质因子,对于18来说就是2。
3.最小质因子的取值范围
任意合数num都能分成a和b两个因子( a, b >= 2,都为整数 ,且a <= b ),即num=a*b,一定有a, b <= num−−−−√ 。
假设a为合数,则a= a1−−√∗a2−−√∗...∗an−