C语言中的函数问题 素数求法

img


为什么判断素数的时候用i的平方小于m才行,而用i小于m就不行了呢,i不是也被m限制着的吗?

素数是从2开始直到本身数字前一个这些数字不能被本身数字整除则为素数
所以那个fun函数里的for循环判断条件是i<m不是i<=m如果i等于m那每个数字除以本身都能整除就都不是素数了

i可以<m,但不能=m。

不能是i<=m,只能是i<m。如果i等于m,m%i肯定是0,那所有数都不是素数啦
至于是i*i<m,还是i<m,虽然都能达到效果,但显然前者效率高很多,会减少很多没必要的比较次数,速度快