কম্পিউটার

পাইথনে সবচেয়ে বড় কে-বিভাজ্য পরবর্তী সমষ্টি খুঁজে বের করার জন্য প্রোগ্রাম


ধরুন আমাদের অ-ঋণাত্মক সংখ্যার একটি তালিকা এবং একটি ধনাত্মক মান k দেওয়া হয়েছে। আমাদেরকে সংখ্যার সর্বাধিক যোগফল খুঁজে বের করতে হবে যাতে যোগফলটি k দ্বারা বিভাজ্য হয়।

সুতরাং, যদি ইনপুট হয়, nums =[4, 6, 8, 2], k =2, তাহলে আউটপুট হবে 20।

পুরো অ্যারের যোগফল 20, যা 2 দ্বারা বিভাজ্য।

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

  • numsSum :=ইনপুট তালিকা সংখ্যার মানের সমষ্টি

  • অবশিষ্ট :=সংখ্যাসম মোড k

  • যদি অবশিষ্টাংশ 0 এর সমান হয়, তাহলে

    • রিটার্ন numsSum

  • তালিকার সংখ্যাগুলি সাজান

  • প্রতিটি সংখ্যা সংমিশ্রণের জন্য tpl সংখ্যায়। করুন

    • subSeqSum :=sum(tpl)

    • যদি subSeqSum mod k অবশিষ্টাংশের সমান হয়, তাহলে

      • numsSum − subSeqSum

        ফেরত দিন
  • রিটার্ন 0

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

উদাহরণ

from itertools import chain, combinations
class Solution:
   def solve(self, nums, k):
      numsSum = sum(nums)
      remainder = numsSum % k
      if remainder == 0:
         return numsSum
      nums.sort()
      for tpl in chain.from_iterable(combinations(nums, r) for r in range(1, len(nums) + 1)):
         subSeqSum = sum(tpl)
         if subSeqSum % k == remainder:
            return numsSum − subSeqSum
      return 0
ob1 = Solution()
print(ob1.solve([4, 6, 8, 2], 2))

ইনপুট

[4, 6, 8, 2], 2

আউটপুট

20

  1. একটি গ্রাফের বৃহত্তম চক্রের সর্বনিম্ন আকার খুঁজে বের করার জন্য প্রোগ্রাম (পাইথন)

  2. পাইথন প্রোগ্রামে অ্যারের সমষ্টি খুঁজুন

  3. পাইথন প্রোগ্রাম একটি অ্যারের বৃহত্তম উপাদান খুঁজে বের করতে

  4. অ্যারের যোগফল খুঁজে পেতে পাইথন প্রোগ্রাম