举个例子,判断10为是否为素数,你需要判断2-9吗?不用,最精简的是判断到根号10,也就是3就可以了。比如10 = 2 * 5,如果判断10求余2为0,就可以判断10是质数了,不需要判断5了。n/2>根号n,所以也可以,但没有根号n的判断次数更少
素数的概念理解一下,不能被任何数整除的数。
如何判断一个数是不是素数,就是判断有没有范围内数据的乘积是这个数。
而一个数的乘积是这个数,在范围内 最大可能就是 y * y = n,要判断n是不是素数 只需要判断到y就够了,只是判断到n-1或者n/2多余判断也不影响。
这是个数学问题
假如一个数n有一个因数是m
那么n/m必然是它的另一个因数
如果你只是要判断n是不是素数,你没必要把m和n/m都试一次
如果m<n^0.5,那么n/m必然大于n^0.5,唯一要注意的情况就是m=n/m=n^0.5,所以判断i*i<=n即可
而只要比2大的数,n/2必然大于等于n^0.5,所以循环到n/2肯定也能满足条件