描述
对于给定的偶数 n,找出两个素数 a,b满足:
- 它们的和等于 n;
- 它们的差值的绝对值最小。
我们可以证明,a,b 一定存在,从小到大输出满足条件的素数对。
输入描述:
输入一个整数 n(4≦n≦10的3次方)。保证 n 是偶数。
输出描述:
第一行输出一个整数 a,代表满足条件的素数对中的较小者。
第二行输出一个整数 b,代表满足条件的素数对中的较大者。
const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;
void (async function () {
// Write your code here
const isSu = (val) => {
let flag = true;
for (let j = 2; j <= Math.sqrt(val); j++) {
if (val % j == 0) {
flag = false;
continue;
}
}
return flag;
};
while ((line = Number(await readline()))) {
let su = [];
for (let i = 1; i <= line / 2; i++) {
if (isSu(i) && isSu(line - i)) su.push([i, line - i]);
}
su.sort((a, b) => Math.abs(a[0] - a[1]) - Math.abs(b[0] - b[1]));
console.log(su[0][0])
console.log(su[0][1])
}
})();