题解 | #完全数计算#
完全数计算
https://www.nowcoder.com/practice/7299c12e6abb437c87ad3e712383ff84
const rl = require("readline").createInterface({ input: process.stdin }); var iter = rl[Symbol.asyncIterator](); const readline = async () => (await iter.next()).value; // 是否是完全数 function fn(num) { const set = new Set() // num / 2 是因为约数不可能比 num/2 还要大 for (let i = 0; i <= num / 2; i += 1) { // 这是个约数,加入 set if (num % i === 0) { set.add(i) } } return [...set].reduce((pre, cur) => pre + cur) === num } void async function () { let res = 0 // Write your code here while(line = await readline()){ // 第一个完全数是 6 for (let i = 6; i <= line; i += 1) { if (fn(i)) { // 计数,如果 i 是完全数,计数 + 1 res += 1 } } } console.log(res) }()