কম্পিউটার টিউটোরিয়াল

পাইথনে অ্যারেয়ে শুধু একটি উপাদান বাদে সবের বিভাজক একটি পূর্ণসংখ্যা খুঁজুন


मान लीजिए हमारे पास संख्याओं की एक सरणी है; हमें एक संख्या B ढूंढनी है जो दिए गए सरणी में ठीक एक तत्व को छोड़कर सभी का भाजक है। हमें ध्यान रखना होगा कि सभी तत्वों का GCD 1 नहीं है।

यदि इनपुट {8, 16, 4, 24} जैसा है, तो आउटपुट 8 होगा क्योंकि यह 4 को छोड़कर सभी का भाजक है।

इसे हल करने के लिए हम निम्नलिखित चरणों का पालन करेंगे:

  • n := सरणी का आकार
  • यदि n, 1 के समान है, तो (array[0] + 1) लौटाएं
  • prefix := आकार n की एक सरणी, 0 से भरी हुई
  • suffix := आकार n की एक सरणी, 0 से भरी हुई
  • prefix[0] := array[0]
  • i को 1 से n तक के लिए, करें:
    • prefix[i] := gcd(array[i], prefix[i-1])
  • suffix[n-1] := array[n-1]
  • i को n-2 से -1 तक 1 घटाकर, करें:
    • suffix[i] := gcd(suffix[i+1], array[i])
  • i को 0 से n+1 तक के लिए, करें:
    • cur := 0
    • यदि i, 0 के समान है, तो cur := suffix[i+1]
    • अन्यथा यदि i, n-1 के समान है, तो cur := prefix[i-1]
    • अन्यथा, cur := gcd(prefix[i-1], suffix[i+1])
    • यदि array[i] % cur != 0, तो cur लौटाएं
  • 0 लौटाएं

उदाहरण कोड

बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:

from math import gcd
def getDivisor(array):
    n = len(array)
    if n == 1:
        return array[0] + 1
    prefix = [0] * n
    suffix = [0] * n
    prefix[0] = array[0]
    for i in range(1, n):
        prefix[i] = gcd(array[i], prefix[i - 1])
    suffix[n - 1] = array[n - 1]
    for i in range(n - 2, -1, -1):
        suffix[i] = gcd(suffix[i + 1], array[i])
    for i in range(n):
        cur = 0
        if i == 0:
            cur = suffix[i + 1]
        elif i == n - 1:
            cur = prefix[i - 1]
        else:
            cur = gcd(prefix[i - 1], suffix[i + 1])
        if array[i] % cur != 0:
            return cur
    return 0

array = [8, 16, 4, 24]
print(getDivisor(array))

इनपुट

[8, 16, 4, 24]

आउटपुट

8

  1. পাইথন প্রোগ্রাম অ্যারেতে সবচেয়ে বড় এলিমেন্ট বের করা

  2. পাইথনে অ্যারে থেকে সর্বোচ্চ এলিমেন্ট বের করা

  3. পাইথন প্রোগ্রাম: ২ডি অ্যারে-তে k-তম ছোট এলিমেন্ট বের করা

  4. পাইথনে পূর্ণসংখ্যা অ্যারে থেকে স্বতন্ত্র (distinct) উপাদান প্রিন্ট করার প্রোগ্রাম