কম্পিউটার

পাইথনের একটি অ্যারের মধ্যে ঠিক একটি উপাদান ব্যতীত একটি পূর্ণসংখ্যা X খুঁজুন যা সবগুলির ভাজক


ধরুন আমাদের কাছে সংখ্যার একটি অ্যারে আছে; আমাদের একটি সংখ্যা B খুঁজে বের করতে হবে যেটি প্রদত্ত অ্যারের ঠিক একটি উপাদান ব্যতীত সকলের ভাজক। আমাদের মনে রাখতে হবে যে সমস্ত উপাদানের GCD 1 নয়।

সুতরাং, যদি ইনপুটটি {8, 16, 4, 24} এর মত হয়, তাহলে আউটপুট হবে 8 কারণ এটি 4 বাদে সকলের ভাজক।

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • n :=অ্যারের আকার
  • যদি n 1 এর মত হয়, তাহলে
    • রিটার্ন(অ্যারে[0] + 1)
  • উপসর্গ :=n আকারের একটি অ্যারে, এবং 0 দিয়ে পূরণ করুন
  • প্রত্যয় :=n আকারের একটি অ্যারে, এবং 0 দিয়ে পূরণ করুন
  • প্রিফিক্স[0] :=অ্যারে[0]
  • 1 থেকে n রেঞ্জের জন্য,
      করুন
    • উপসর্গ[i] :=(অ্যারে[i] এবং উপসর্গ[i - 1]) এর gcd
  • প্রত্যয়[n - 1] :=অ্যারে[n - 1]
  • n - 2 থেকে -1 রেঞ্জে i এর জন্য, 1 দ্বারা হ্রাস করুন, করুন
    • প্রত্যয়[i] :=(প্রত্যয়[i + 1] এবং অ্যারে[i]) এর gcd
  • 0 থেকে n + 1 রেঞ্জের জন্য,
      করুন
    • cur :=0
    • যদি আমি 0 এর মত হয়, তাহলে
      • cur :=প্রত্যয়[i + 1]
    • অন্যথায় যখন i n - 1 এর মত হয়, তখন
      • cur :=উপসর্গ[i - 1]
    • অন্যথায়,
      • cur :=gcd (উপসর্গ[i - 1] এবং প্রত্যয়[i + 1])
    • যদি array[i] mod cur 0 এর মত না হয়, তাহলে
      • রিটার্ন কার্
  • রিটার্ন 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(0, n + 1):
      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. একটি 2D অ্যারেতে k'th ক্ষুদ্রতম উপাদান খুঁজে পেতে পাইথন প্রোগ্রাম

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