并不是一定要用sqrt在编写函数判断某个数n 是否为素数时,需要使用一个循环,从2到某个数m(m<n),如果2~m之间这个范围内所有的数都不能整除n,那么n就是素数,否则就不是素数为了提高判断的效率,就需要减少2~m这个范围,越小越好,显然m不需要取到n-1,事实上到n/2是可以的(也就是一半处),但数学上可以证明,对大多数的整数(n>4),m只需要到根号n即可,也就是sqrt(n),接下来我们就来聊聊关于c语言判断素数为什么要用sqrt?以下内容大家不妨参考一二希望能帮到您!

c语言判断素数为什么要用sqrt

c语言判断素数为什么要用sqrt

并不是一定要用sqrt。在编写函数判断某个数n 是否为素数时,需要使用一个循环,从2到某个数m(m<n),如果2~m之间这个范围内所有的数都不能整除n,那么n就是素数,否则就不是素数。为了提高判断的效率,就需要减少2~m这个范围,越小越好,显然m不需要取到n-1,事实上到n/2是可以的(也就是一半处),但数学上可以证明,对大多数的整数(n>4),m只需要到根号n即可,也就是sqrt(n)。

所以使用sqrt的目的是为了减少循环判断次数,其实也不是必然使用的,换成n/2也是可以的