C++ 中的完全数


假设我们要判断一个给定的数字是否为完全数。当一个数字等于所有真因数(不包括它本身)的和时,它被称为完全数。数字 n 的范围在 1^8 内。

所以,如果输入是 28,那么输出将为真,因为它的除数之和 - 1 + 2 + 4 + 7 + 14 = 28。

为了解决这个问题,我们将遵循以下步骤 -

由于数字的范围在 10^8 内,因此只有少数几个完全数,如果给定的输入在该集合中,那么答案将为真,否则为假。完全数有:6、28、496、8128 和 33550336。

示例

让我们查看以下实现以增进理解 -

 现场演示

#include <bits/stdc++.h>
using namespace std;
class Solution {
   public:
   bool checkPerfectNumber(int num) {
      set<int> set={6,28,496,8128,33550336};
      return set.find(num)!=set.end();
   }
};
main(){
   Solution ob;
   cout << (ob.checkPerfectNumber(28));
}

输入

28

输出

1

更新时间:2020 年 6 月 10 日

2 千次 + 浏览

开启你的 职业生涯

学完课程即可获得认证

开始学习
广告