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

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

for(int i=2; i*i<n; i++){
    if(n%i==0){
        return false;
    }
}
return true;

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

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

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

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

 

posted @ 2019-07-11 19:40  缓步徐行静不哗  阅读(722)  评论(0编辑  收藏  举报