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

पायथन का उपयोग करके जांचें कि किसी संख्या में दिए गए बेस में लगातार शून्य हैं या नहीं


जब यह जांचने की आवश्यकता होती है कि किसी संख्या के विशिष्ट बेस में लगातार शून्य हैं या नहीं, तो एक मेथड परिभाषित की जाती है जो संख्या और बेस को पैरामीटर के रूप में लेती है, और दूसरी मेथड का उपयोग करके Yes या No लौटाती है यह इस बात पर निर्भर करता है कि बेस मौजूद है या नहीं।

उदाहरण

def check_consecutive_zero(N, K):
    my_result = convert_to_base(N, K)
    if (check_n(my_result)):
        print("Yes")
    else:
        print("No")

def convert_to_base(N, K):
    weight = 1
    s = 0
    while (N != 0):
        r = N % K
        N = N // K
        s = r * weight + s
        weight *= 10
    return s

def check_n(N):
    res = False
    while (N != 0):
        r = N % 10
        N = N // 10
        if (res == True and r == 0):
            return False
        if (r > 0):
            res = False
            continue
        res = True
    return True

N, K = 8, 2
print("क्या संख्या में बेस में लगातार शून्य हैं?")
check_consecutive_zero(N, K)

आउटपुट

क्या संख्या में बेस में लगातार शून्य हैं? No

व्याख्या

  • 'check_consecutive_zero' नामक एक मेथड परिभाषित की जाती है जो संख्या और बेस लेती है।

  • 'convert_to_base' मेथड का उपयोग दी गई संख्या को विशिष्ट बेस में बदलने के लिए किया जाता है।

  • आउटपुट विशिष्ट बेस का है या नहीं, इस पर निर्भर करते हुए Yes या No लौटाया जाता है।

  • 'check_n' मेथड का उपयोग यह जांचने के लिए किया जाता है कि संख्या 0 है या नहीं।

  • N और K के मान परिभाषित किए जाते हैं।

  • N और K पास करके 'check_consecutive_zero' मेथड को कॉल किया जाता है।

  • आउटपुट कंसोल पर प्रदर्शित होता है।

कोड विश्लेषण और सुधार

उदाहरण के लिए: N=8, K=2

  • 8 बाइनरी (बेस 2) में = 1000
  • 1000 में लगातार तीन शून्य हैं
  • लेकिन आउटपुट "No" दिखाता है - कोड में बग है

बग विश्लेषण

check_n फ़ंक्शन का लॉजिक गलत है। यह लगातार शून्य का पता लगाने के बजाय, अंतिम शून्य के बाद गैर-शून्य अंक की जांच करता है।

सही कार्यान्वयन

def check_consecutive_zero(N, K):
    # संख्या को बेस K में बदलें (स्ट्रिंग के रूप में)
    digits = []
    while N > 0:
        digits.append(str(N % K))
        N //= K
    base_representation = ''.join(reversed(digits)) if digits else '0'
    
    # लगातार शून्य जांचें
    if '00' in base_representation:
        print("Yes")
    else:
        print("No")

# या अधिक सामान्य: K या अधिक लगातार शून्य
def has_k_consecutive_zeros(N, K, k=2):
    digits = []
    while N > 0:
        digits.append(str(N % K))
        N //= K
    base_rep = ''.join(reversed(digits)) if digits else '0'
    return '0' * k in base_rep

टेस्ट केस

  • N=8, K=2 → बाइनरी: 1000 → "Yes" (लगातार 3 शून्य)

  • N=5, K=2 → बाइनरी: 101 → "No"

  • N=9, K=3 → टर्नरी: 100 → "Yes" (लगातार 2 शून्य)


  1. पायथन में जांचें कि कोई संख्या डाइहेड्रल अभाज्य संख्या है या नहीं पायथन में जांचें कि कोई संख्या डाइहेड्रल अभाज्य संख्या है या नहीं

    मान लीजिए हमारे पास एक संख्या n है। हमें जांचना है कि n डाइहेड्रल अभाज्य है या नहीं। एक संख्या डाइहेड्रल अभाज्य कहलाती है जब वह संख्या स्वयं अभाज्य हो और 7-सेगमेंट डिस्प्ले पर सामान्य या उल्टा (upside-down) दिखाने पर वही संख्या या कोई अन्य अभाज्य संख्या प्रदर्शित हो। उदाहरण के लिए, यदि इनपुट n = 11

  1. - पायथन में जांचें कि दी गई संख्या ओर संख्या (Ore Number) है या नहीं

    मान लीजिए हमारे पास एक संख्या n है। हमें जांचना है कि n एक ओर संख्या (Ore number) है या नहीं। जैसा कि हम जानते हैं, एक ओर संख्या वह संख्या होती है जिसके भाजकों का हार्मोनिक माध्य एक पूर्णांक होता है। उदाहरण के लिए, यदि इनपुट 28 है, तो आउटपुट True होगा क्योंकि 28 के छह भाजक हैं: [1, 2, 4, 7, 14, 28]

  1. पायथन में जांचें कि दिया गया ग्राफ द्विभाजित है या नहीं पायथन में जांचें कि दिया गया ग्राफ द्विभाजित है या नहीं

    मान लीजिए हमारे पास एक अविकल्पित ग्राफ है, हमें जांचना है कि ग्राफ द्विभाजित है या नहीं। जैसा कि हम जानते हैं, एक ग्राफ द्विभाजित होता है जब हम ग्राफ के नोड्स को दो सेट A और B में विभाजित कर सकते हैं ताकि ग्राफ में प्रत्येक किनारा {u,v} का एक नोड u A में और दूसरा नोड v B में हो। उदाहरण के लिए, यदि