此处的代码检查2到n之间的质数:
<script>
function showPrimes(n) {
for (let i = 2; i < n; i++) {
if (!isPrime(i)) continue;
alert(i); // a prime
}
}
function isPrime(n) {
for (let i = 2; i < n; i++) {
if ( n % i == 0) return false;
}
return true;
}
</script>
但是我不明白为什么它适用于数字2,并且当n和i都等于2时返回false,而其他素数则不会发生。我是javascript(和一般编程人员)的新手,据我所知,这段代码将第一个循环的第一个迭代中的i从“ showPrimes”函数中取出,然后将其放在“ isPrime”函数中作为参数,并放在该函数在“ if”条件下变为“ n”,并且在从“ isPrime”循环中将其除以i时检查是否存在余数,因此(n%i == 0)应该为(2% 2 == 0)在第一次迭代中,对吗?如果是这样,为什么它会像对其他素数一样起作用,而其他素数显然会变成假,而不像(2%2 == 0)是真的。
我在这里想念的是什么?抱歉,这是一个显而易见的/愚蠢的问题,这是我第一次学习与编程有关的任何知识。
答案 0 :(得分:0)
function isPrime(n) {
for (let i = 2; i < n; i++) {
当n = 2时; i = 2;上面的循环将不会输入。