元素分裂我用因数求解,效率慢了点。 大佬们要怎么联系做题速度和思路啊啊啊啊,前端人很痛苦。 let n = 2, count = 0; let arr = '2 6&(31168)#39;.split(' &(30184)#39;); let isPrime = (x) => {     for (let i = 2; i <= Math.sqrt(x); i++) {         if (x % i == 0) return false;     }     return true; } for (let i = 0; i < n; i++) {     let x = parseInt(arr[i]), split = new Array();     if(x == 1){         continue;     }     split.push(x);     while(split.length != 0){         let xx = split.pop();         if(xx == 2 || xx == 3){             count += (xx - 1);         }         else if(isPrime(xx)){             count++;             split.push(xx-1);         }else{             for(let j = 2; j <= xx / 2; j++){                 if(isPrime(j) && xx % j == 0){                     count++;                     split.push(j);                     split.push(parseInt(xx / j));                     break;                 }             }         }     } } console.log(count);