求素数只需要求到i*i<=x

Posted ant-xu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求素数只需要求到i*i<=x相关的知识,希望对你有一定的参考价值。

求素数只需要到i*i<=x

for(int i=2; i*i<=x i++)

 

1、素数,所以没有1,从2开始。

2、一个数如果不是素数,最大的因子该是小于等于x/2,在大根本没法除。

3、进一步确定到根号x,一个数如果不是素数,意味着一定存在两个因子a、b,并且a*b==x,并且这两个因子一定是一个大于根号x,一个小于根号x。其中极限情况是a==b==根号x。由此可得,我们只需要除到较小的因子的值,就可以判断素数。

4、为什么3的范围比2的范围小

技术图片

技术图片

 

以上是关于求素数只需要求到i*i<=x的主要内容,如果未能解决你的问题,请参考以下文章

筛法--求1到100的所有素数

编程求出100到10000之间既是素数又是回文数的所有数~用c语言,急 在线等

线性筛法求素数

c语言求素数以及改进算法

用c语言求500到1000的素数

输出[m,n]之间的素数,用c语言编程怎么写。谢谢,