चुनौतियों पर वापस जाएँ
आसान 0 हल किए गए 0% स्वीकृति

किसी संख्या को उसके भाजकों के आधार पर वर्गीकृत करें

एक धनात्मक पूर्णांक को perfect, abundant, या deficient के रूप में वर्गीकृत करें।

आप क्या सीखेंगे

  • संख्या के सभी उचित भाजक ढूँढना
  • वर्गमूल से भाजक खोज तेज़ करना
  • शर्तों से परिणाम वर्गीकृत करना

समस्या

n के उन धनात्मक भाजकों का योग करें जो n से strictly छोटे हैं। यदि उनका योग n के बराबर है, तो संख्या perfect है। यदि योग n से बड़ा है, तो abundant; यदि छोटा है, तो deficient। संख्या 1 का कोई proper धनात्मक भाजक नहीं होता, इसलिए उसका भाजक योग 0 है।

perfect_number(n) को लागू करें।

इनपुट

n: वर्गीकृत करने के लिए धनात्मक पूर्णांक।

आउटपुट

perfect, abundant, या deficient को छोटे अक्षरों में टेक्स्ट के रूप में लौटाएँ।

सीमाएँ

1 ≤ n ≤ 1,000,000। शून्य और ऋणात्मक मान शामिल नहीं हैं।

उदाहरण

उदाहरण 1
इनपुट:
n = 18

अपेक्षित आउटपुट:
expected = "abundant"
इनपुट:
long long n = 18;

अपेक्षित आउटपुट:
std::string expected = "abundant";
इनपुट:
long n = 18;

अपेक्षित आउटपुट:
string expected = "abundant";

व्याख्या

सही भाजक 1, 2, 3, 6, और 9 हैं। इनका योग 21 है, जो 18 से अधिक है।

उदाहरण 2
इनपुट:
n = 28

अपेक्षित आउटपुट:
expected = "perfect"
इनपुट:
long long n = 28;

अपेक्षित आउटपुट:
std::string expected = "perfect";
इनपुट:
long n = 28;

अपेक्षित आउटपुट:
string expected = "perfect";

व्याख्या

सही भाजकों का योग 1 + 2 + 4 + 7 + 14 = 28 है, जो संख्या के बराबर है।

कैसे हल करें

पहले खुद कोशिश करें, फिर एक-एक करके संकेत खोलें।

संकेत 1

n के proper divisors ढूँढो और उनकी sum को n से compare करो ताकि class तय हो सके।

संकेत 2

Divisors को square root तक ही search करना है, और हर divisor के साथ उसका companion pair करना है।

संकेत 3

1 को carefully handle करो, क्योंकि उसके कोई proper positive divisors नहीं हैं और उसका divisor sum zero है।

अपेक्षित जटिलता

समय O(√n), अतिरिक्त स्थान O(1)

संदर्भ

यह चुनौती CodeUtility के लिए अनुकूलित की गई है। ऊपर दिए गए स्टेटमेंट और सीमाओं का पालन करें।

दूसरों से सीखें

समुदाय समाधान

अभी तक कोई प्रकाशित समाधान नहीं। पहला साझा करने के लिए इस चुनौती को हल करें।