我原本的第一个逻辑:
isPrime(num) {
let res = true;
for (let i = 2; i <= num / 2; i++) {
if (num % i === 0) {
res = false;
break;
}
}
return res;
}
后来老师说了,相乘的因数一个大一个小的都分布在开平方的数值的两边,,,我觉得我都忘光了数学原理了。耻辱!
我优化后:
isPrime(num) {
let res = true, i = 2;
while (res && i <= Math.sqrt(num)) {
num % i === 0 && (res = false);
}
return res;
}