Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

पायथन में जांचें कि किसी संख्या के सभी सब-नंबर्स का डिजिट प्रोडक्ट अद्वितीय है या नहीं

मान लीजिए हमारे पास एक संख्या n है। हमें यह जांचना है कि इस संख्या के सभी सब-नंबर्स (उप-संख्याओं) का डिजिट प्रोडक्ट अद्वितीय (unique) है या नहीं। जैसा कि हम जानते हैं, n अंकों की संख्या में n*(n+1)/2 सब-नंबर्स होते हैं। उदाहरण के लिए, 135 के सब-नंबर्स हैं: 1, 3, 5, 13, 35, 135। और किसी संख्या का डिजिट प्रोडक्ट उसके अंकों का गुणनफल होता है।

उदाहरण के लिए, यदि इनपुट n = 235 है, तो आउटपुट True होगा क्योंकि सब-नंबर्स हैं [2, 3, 5, 23, 35, 235] और उनके डिजिट प्रोडक्ट्स हैं [2, 3, 5, 6, 15, 30] जो सभी अद्वितीय हैं।

समाधान दृष्टिकोण

हम सभी संभावित सब-स्ट्रिंग्स उत्पन्न करते हैं, प्रत्येक का डिजिट प्रोडक्ट निकालते हैं, और एक सेट में स्टोर करते हैं। यदि कोई डुप्लिकेट मिलता है, तो False लौटाते हैं।

एल्गोरिदम चरण:

  1. dig_prod(digits) फ़ंक्शन परिभाषित करें जो अंकों की सूची का गुणनफल लौटाता है
  2. संख्या को स्ट्रिंग में बदलें, फिर अंकों की सूची बनाएं
  3. खाली सेट prod_set बनाएं
  4. प्रत्येक प्रारंभिक इंडेक्स i और अंतिम इंडेक्स j (i से अंत तक) के लिए:
    • सब-ऐरे digits[i:j+1] का डिजिट प्रोडक्ट निकालें
    • यदि यह prod_set में पहले से है, तो False लौटाएं
    • अन्यथा सेट में जोड़ें
  5. True लौटाएं

पायथन कार्यान्वयन

def dig_prod(digits):
    product = 1
    for d in digits:
        product *= d
    return product

def solve(num):
    num_str = str(num)
    length = len(num_str)
    digits = [None] * length
    prod_set = set()
    
    for i in range(length):
        digits[i] = int(num_str[i])
    
    for i in range(length):
        for j in range(i, length):
            item = dig_prod(digits[i:j+1])
            if item in prod_set:
                return False
            else:
                prod_set.add(item)
    return True

n = 235
print(solve(n))  # True

इनपुट

235

आउटपुट

True

व्याख्या:

संख्या 235 के लिए:

  • सब-नंबर्स: 2, 3, 5, 23, 35, 235
  • डिजिट प्रोडक्ट्स: 2, 3, 5, 6, 15, 30
  • सभी अद्वितीय हैं ✓
  1. - पायथन - जांचें कि लिस्ट में सभी तत्व समान हैं या नहीं

    कभी-कभी हमें यह जांचने की आवश्यकता होती है कि क्या लिस्ट में एक ही मान सभी तत्वों के रूप में दोहराया गया है। हम नीचे दिए गए पायथन प्रोग्राम का उपयोग करके ऐसे परिदृश्य की जांच कर सकते हैं। अलग-अलग दृष्टिकोण हैं। for लूप का उपयोग इस विधि में हम लिस्ट से पहला तत्व लेते हैं और पारंपरिक for लूप का उपयोग

  1. पायथन प्रोग्राम: जांचें कि स्ट्रिंग में सभी यूनिक कैरेक्टर्स हैं या नहीं पायथन प्रोग्राम: जांचें कि स्ट्रिंग में सभी यूनिक कैरेक्टर्स हैं या नहीं

    इस लेख में, हम दिए गए प्रॉब्लम स्टेटमेंट को हल करने के समाधान और दृष्टिकोण के बारे में सीखेंगे। प्रॉब्लम स्टेटमेंट एक स्ट्रिंग इनपुट दिए जाने पर, हमें यह ढूंढना होगा कि स्ट्रिंग में सभी यूनिक कैरेक्टर्स हैं या नहीं। दृष्टिकोण हम बूलियन वैल्यूज़ का एक ऐरे बनाएंगे, जहां इंडेक्स i पर वेरिएबल फ्लैग

  1. - पायथन प्रोग्राम: जांचें कि क्या किसी संख्या के सभी अंक उसे विभाजित करते हैं

    इस लेख में, हम दी गई समस्या के समाधान और दृष्टिकोण के बारे में जानेंगे।समस्या कथन - एक संख्या n दी गई है, जांचें कि क्या n के सभी अंक उसे विभाजित करते हैं या नहीं।यहां हम जांचेंगे कि दी गई संख्या में कोई 0 तो नहीं है क्योंकि इससे शून्य से विभाजन अपवाद उत्पन्न होगा और इसलिए हमें उत्तर में नहीं वापस क