HJ56 完全数计算

描述

完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。

它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。

例如:28,它有约数1、2、4、7、14、28,除去它本身28外,其余5个数相加,1+2+4+7+14=28。

输入n,请输出n以内(含n)完全数的个数。

数据范围:1 <= n <= 5 × 1000000

输入描述:

输入一个数字n

输出描述:

输出不超过n的完全数的个数

示例1

输入:
1000
输出:
3

题解

使用 TypeScript 编写如下代码:

const readline = require('readline');

const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

rl.on('line', function (line) {
    const num = parseInt(line)

    let count = 0;
    for (let i = 1; i <= num; i++) {
        if (isPerfectNumber(i)) {
            count++
        }
    }

    console.log(count)
});

function isPerfectNumber(num: number) {
    let sum = 0;
    for (let i = 1; i <= Math.floor(num / 2); i++) {
        if (num % i === 0) {
            sum += i
        }
    }
    return sum === num
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 牛客网华为机试题[https://www.nowcoder.com/practice/7299c12e6abb43...
    忌你太美阅读 139评论 0 0
  • 如何用php去求出下一个(大于28的)完全数? (求出10000以内所有的完全数) 分析: 如果一个数恰好等于它的...
    第9号当铺阅读 862评论 0 0
  • 1.题目描述 输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数。 输入描述:输入一个整数(in...
    渔家傲_俞阅读 762评论 0 0
  • 数据结构 python set和list哪个效率高? 100w条数据用什么数据结构存储查询效率更高 实现二叉树遍历...
    琉璃_233a阅读 122评论 0 0
  • 完全数:又称为完美数或完备数,是一些特殊的自然数。它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等...
    iarchitect阅读 3,274评论 0 0