একটি সংখ্যা পারফেক্ট নম্বর কিনা তা যাচাই করতে হবে। পারফেক্ট নম্বর হলো যেটি নিজের বাদে সব পজিটিভ ভাজকের যোগফলের সমান। সংখ্যা n ১০^৮ পর্যন্ত হতে পারে।
উদাহরণ: 28 ইনপুট দিলে আউটপুট True, কারণ 1+2+4+7+14 = 28।
সমাধানের ধাপসমূহ
১০^৮ পরিসীমার মধ্যে মাত্র ৫টি পারফেক্ট নম্বর আছে: 6, 28, 496, 8128, 33550336। ইনপুট এই সেটে আছে কিনা চেক করলেই كافية।
C++ কোড উদাহরণ
#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
bool checkPerfectNumber(int num) {
set<int> s = {6,28,496,8128,33550336};
return s.find(num) != s.end();
}
};
int main() {
Solution ob;
cout << ob.checkPerfectNumber(28);
return 0;
}
ইনপুট
28
আউটপুট
1