在判断n是否为素数时,为什么是循环到根号n就可以退出循环?

这属于算法上的问题,好好考虑一下算法,还要考虑一下素数的定义。
素数是只有1和本身能整除的整数。所以在求素数的时候,要将素数与1到素数本身中间的所有整数都相除,看是否有整除的数,如果有,那肯定不是素数了。但是从算法上考虑,为了减少重复量,开平方后面的数就不用相除了,因为a/b(平方数)=c(小一点的数),同样a/c=b。举例说明:
25,开平方以后是5,那么整除2~5就可以了,如果有满足条件的,就是素数。

原因:
如果不是素数,那么一定是两个数相乘得到这个数。设这两个数为a,b ,要判断的这个数为n。跟下n×跟下n结果为n。a,b相乘一定是一个小于跟下n,一个大于跟下n(如果不是一大一小,相乘不可能得到n,只可能比n这个数小)所以判断到了跟下n即可,再判断跟下n之后的数字已经没有意义,因为前面已经有相乘的数字。

发布了44 篇原创文章 · 获赞 1 · 访问量 3186

猜你喜欢

转载自blog.csdn.net/qq_40660825/article/details/104835147
今日推荐