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 千次 + 瀏覽

開啟你的 職業生涯

學完課程即可獲得認證

開始學習
廣告