质数
只有两个正因数(1和自己)的自然数即为质数。1和0非质数也非合数。
JavaScript代码
function isPrime(num){
if(num < 2){
return false;
}
if(num == 2){
return true;
}
for(let i = 2; i <= Math.sqrt(num);i++){
if(num % i == 0 && num != i){
return false;
}
}
return true;
}
for(let i = 1; i <= 10000; i++){
isPrime(i) && console.log(i);
}
小结
重点在于求解数N是否未质数:基本的思路是设置变量i从2开始,只要N%i的结果为0,该数必然不是质数。
但是换个思路想,如果一个数不是质数,则必然有2个正因数(非1和本身),那么这两个数(设为x和y)正常情况下应该一小一大,极端情况下x=y,因此我们只要判断到N的开方即可,如果i从2到N的开方都无法被除尽,那么也就不存在更大的数可以被除尽了,因此该数一定是质数。