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
广告