我知道这个问题之前已经回答过,但我不太明白关于这个问题的解释。
我在 HackerRank 上写了 30 天的代码,其中一个练习是检查一个数字是否为质数。不幸的是,我自己做不到,所以我在多次尝试后检查了给定的解决方案。即使在查看了解决方案之后,我也无法理解其中的一行:
// Check for primality using odd numbers from 3 to sqrt(n)
for(int i = 3; i <= sqrt(n); i += 2){
// n is not prime if it is evenly divisible by some 'i' in this range
if( n % i == 0 ){
isPrime = false;
}
}
为什么sqrt(n)
在for
循环中使用?