मान लीजिए कि हमें यह जांचना है कि दी गई संख्या पूर्ण संख्या है या नहीं। एक संख्या को पूर्ण संख्या कहा जाता है, जब वह स्वयं को छोड़कर उसके सभी धनात्मक भाजक के योग के बराबर हो। संख्या 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