问题:判断一个数是否为素数,若是返回 num+“ 是 素数”,若不是返回所有的除数(除了1和本身)
test(number){
let arr = [];
for(let i=2;i<=Math.floor(number / 2);i++){
if(number % i === 0){
arr.push(i);
}
}
arr.length?arr:number+" 是 素数";
}
素数:除了1和它本身外没有其它除数。在这里通过从2开始一直到该数的二分之一,依次判断是否为改数的除数。若没有,则该数 是素数。
以前我不理解为什么判断从2到 本身的二分之一就可以得到所有的除数,其实仔细想想就明白,大于二分之一的数乘以2都会大于本身。比如 6,二分之一是3,那么4*2=8,肯定会是大于6的。而2是要求的找的最小的除数。
注意:在实际开发中,尽量用 === 而不用 ==,因为会有一些转换的问题,比如("" == 0 为true)