使用 JavaScript 查找总和为输入数字的所有可能素数对
问题
我们需要编写一个接受数字n的JavaScript函数。我们的函数应该返回一个包含所有这些数字对的数组,当求和时它们都是n并且它们都是素数。
示例
以下是代码-
const num = 26;
const isPrime = (n) => {
if (n % 2 === 0) return false;
let sqrtn = Math.sqrt(n)+1;
for (let i=3; i < sqrtn; i+=2) {
if (n % i === 0) return false;
}
return true;
}
const primeList = (a) => {
if (isPrime(a)) return a; else return false;
};
const generateNumbers = (n) => {
let num = (n % 2 === 0) ? (n -1) : n;
let list = []
for (let i = num; i > 3; i-=2)
list.push(i);
list.push(3,1);
return list;
}
const calculate = (num, list, results) => {
if (list.length === 0) return results;
let item = list.shift();
let itemPairIndex = list.indexOf(num - item);
if (itemPairIndex !== -1) {
let itemPair = list.splice(itemPairIndex,1)
results.push(item+"+"+itemPair);
}
return calculate(num, list, results);
}
const findprimeSum = (num) => {
const pairs = [];
const list = generateNumbers(num).filter(primeList);
return calculate(num, list, []);
}
console.log(findprimeSum(num));输出结果[ '23+3', '19+7' ]
热门推荐
10 八一幼儿祝福语大全简短
11 公司乔迁食堂祝福语简短
12 婚礼结束聚餐祝福语简短
13 儿媳买车妈妈祝福语简短
14 毕业送礼老师祝福语简短
15 同事辞职正常祝福语简短
16 恭贺新婚文案祝福语简短
17 金店立秋祝福语简短英文
18 婆婆高寿祝福语大全简短