求素数为什么到平方根就行了_素数质数

如果一个数字不是素数 那它除了1和他本身一定还有别的约数;
如上图:


如果一个数的约数在其开平方的右边 则必然会存在一个约数在其开平方的左边 所以
判断一个数是否为质数 只需要观察在其2 到 开平方数中间是否含有约数即可

比如说 判断16是否为质数 我们去找16的约数时 判断它的范围 只需要找到
16的开平方数就可以了 而不必一直找到<16 或者<= 16/2
ps:这两种情况不再贴代码了

lay: for(int i = 2;i<=100;i++){

for(int j = 2;j<=Math.sqrt(i);j++){

if(i%j==0){

continue lay;

}

System.out.println("质数有"+i);

}

}