यह मेरी पहली चुनौती है!
पृष्ठभूमि
परफेक्ट नंबर एक पॉजिटिव पूर्णांक है, जो अपने को छोड़कर, इसके सभी विभाजकों के योग के बराबर है।
तो 6
एकदम सही संख्या है, क्योंकि 1 + 2 + 3 = 6
।
दूसरी तरफ 12
नहीं है, क्योंकि 1 + 2 + 3 + 4 + 6 = 16 != 12
।
कार्य
आपका कार्य सरल है, एक प्रोग्राम लिखें, जो दिए n
गए इन संदेशों में से एक को प्रिंट करेगा :
मैं एक परफेक्ट नंबर
d1 + d2 + ... + dm = s == n
हूं , क्योंकि मैं एक परफेक्ट नंबर नहीं हूं, क्योंकिd1 + d2 + ... + dm = s [<>] n
जहां
d1, ... dm
के n
अलावा सभी विभाजक हैं n
।
s
सभी भाजक d1, ..., dm
(फिर, बिना n
) का योग है ।
[<>]
या तो <
(यदि है s < n
) या >
(यदि s > n
)।
उदाहरण
के लिए n
किया जा रहा है 6
"मैं, एक आदर्श संख्या हूँ क्योंकि 1 + 2 + 3 = 6 == 6":
के लिए n
किया जा रहा है 12
: "मुझे नहीं एक आदर्श संख्या हूँ, क्योंकि 1 + 2 + 3 + 4 + 6 = 16> 12"
के लिए n
किया जा रहा है 13
: "मैं एक पूर्ण संख्या नहीं हूं, क्योंकि 1 = 1 <13"
नियम
n
आपकी भाषा के मानक से बड़ा नहीं हैint
।- आप
n
मानक इनपुट से, कमांड लाइन के तर्क से या किसी फ़ाइल से पढ़ सकते हैं । - आउटपुट संदेश को मानक आउटपुट पर प्रिंट करना होता है और कोई भी अतिरिक्त वर्ण आउटपुट में नहीं दिखाई देता है (इसमें अनुगामी व्हाट्सएप या न्यूलाइन हो सकता है)
- आप किसी भी बिल्ट-इन या लाइब्रेरी फ़ंक्शंस का उपयोग नहीं कर सकते हैं जो आपके लिए कार्य (या इसका मुख्य भाग) को हल करेगा। नहीं
GetDivisors()
या ऐसा कुछ। - अन्य सभी मानक खामियां लागू होती हैं।
विजेता
यह बाइट्स जीत में कोड-गोल्फ इतना छोटा कोड है !
=
और ==
उसी समीकरण में उपयोग करते हैं ? इसका कोई अर्थ नही बन रहा है। यह d1 + d2 + ... + dm = s = n
IMO होना चाहिए ।