我问了gpt它是这样答的: 在素数判断函数中,使用sqrt(n)函数是因为素数的最小因子肯定不会超过其平方根。所以只需要检查从2到sqrt(n)的所有数是否能整除n,如果存在能整除n的数,那么n就不是素数,否则就是素数。 当i超过sqrt(n)时,即i > sqrt(n),那么i * (n / i)肯定大于n,因为n / i会小于sqrt(n),这样在i > sqrt(n)时,不会再有整除n的情况,所以不需要继续循环。 这也是为什么在素数判断函数中,循环条件可以设为i <= sqrt(n)的原因。因为只需要检查到sqrt(n)就足够了,超过sqrt(n)的部分在之前已经被检查过了。 所以使用sqrt(n)函数可以提高算法效率,避免不必要的循环。
点赞

相关推荐

点赞 评论 收藏
分享
牛客网
牛客企业服务