首先解释 筛除法 的原理
可知素数的定义是 除了1和它本身以外,再也没有数可以把它整除
那么也就是说:一个素数的整数倍肯定不是素数,况且由于从最小的素数(2)开始向更大的数排查
所以只要不是任何一个素数的倍数那么肯定就是素数,不会有遗漏
(这是上面一句话的解释)因为可知数只分为素数和合数,如果一个数不是任何一个素数的倍数
那么如果它想是合数的话,它必须是合数的倍数,而合数可以分解成小的素数的倍数,到头来
还是素数的倍数
实现算法的c语言代码如下
最后提一句,如果是查找比如最小的五十个素数,可以用素数定理确定大概位置,然后再使用上类方法