কম্পিউটার

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

  1. C++ এ মিতব্যয়ী নম্বর

  2. C++ পেন্টাটোপ নম্বর

  3. C++ এ প্রায় নিখুঁত সংখ্যা

  4. C++ এ অ্যাডাম নম্বর