小编Joã*_*ida的帖子

为什么我们要检查 i <= sqrt(n) 来判断一个数是否是质数?

我知道这个问题之前已经被回答过,但我不太明白对该问题的解释。

我在 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;
    }
}
Run Code Online (Sandbox Code Playgroud)

为什么sqrt(n)for循环中使用?

primes primality-test

0
推荐指数
1
解决办法
1829
查看次数

标签 统计

primality-test ×1

primes ×1