// 求最大体积 function getMaxVolume(n) { // write code here // 和为 n 的数组 let theNumArr = []; let x = null; let y = null; let z = null; let res = 0; // 小于n的所有质数 - 数组 let znumberArr = getZNumber(n); for (let i = 0; i < znumberArr.length; i++) { if (znumberArr[i] * 3 == n) { theNumArr.push(`${znumberArr[i]},${znumberArr[i]},${znumberArr[i]}`) } } for (let i = 0; i < znumberArr.length; i++) { x = i; for (let j = 0; j < znumberArr.length; j++) { y = j; if (znumberArr[x] * 2 + znumberArr[y] == n) { theNumArr.push(`${znumberArr[i]},${znumberArr[i]},${znumberArr[j]}`); } } } for (let i = 0; i < znumberArr.length; i++) { x = i; for (let j = 0; j < znumberArr.length; j++) { y = j; for (let k = 0; k < znumberArr.length; k++) { z = k; if (znumberArr[x] + znumberArr[y] + znumberArr[z] == n) { theNumArr.push(`${znumberArr[i]},${znumberArr[j]},${znumberArr[k]}`); } } } } theNumArr.forEach(str => { let narr = str.split(","); let ares = parseInt(narr[0]) * parseInt(narr[1]) * parseInt(narr[2]) if (ares > res) { res = ares } }) return res } // 求质数 function getZNumber(n) { // 存放质数的数组 let numArr = []; // 求 n 以内的质数 for (let i = 2; i < n; i++) { let flag = true; for (let j = 1; j <= i; j++) { if(i % j == 0) { if (j != 1 && j != i) { // 合数 flag = false; break; } } } if (flag) { numArr.push(i); } } return numArr; } console.log(getMaxVolume(15));
全部评论
(2) 回帖