Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ตัวเลขที่สมบูรณ์แบบใน C++


สมมติว่าเราต้องตรวจสอบว่าตัวเลขที่กำหนดเป็นตัวเลขที่สมบูรณ์แบบหรือไม่ จำนวนหนึ่งเรียกว่าจำนวนสมบูรณ์เมื่อจำนวนนั้นเท่ากับผลรวมของตัวหารบวกทั้งหมดยกเว้นตัวมันเอง หมายเลข n จะอยู่ในช่วง 1^8

ดังนั้น หากอินพุตเท่ากับ 28 เอาต์พุตจะเป็น True เนื่องจากผลรวมของตัวหาร − 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