元素分裂我用因数求解,效率慢了点。 大佬们要怎么联系做题速度和思路啊啊啊啊,前端人很痛苦。 let n = 2, count = 0; let arr = '2 6'.split(' '); 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);
点赞 评论

相关推荐

牛客网
牛客网在线编程
牛客网题解
牛客企业服务