কম্পিউটার

প্রদত্ত অ্যারের যেকোন সিকোয়েন্সের সর্বোচ্চ আকার খুঁজে বের করার প্রোগ্রাম যেখানে পাইথনে প্রতিটি জোড়া চমৎকার


ধরুন আমাদের n আকারের একটি ক্রম সংখ্যা আছে। আমাদের সংখ্যার পরের সংখ্যার সর্বোচ্চ আকার খুঁজে বের করতে হবে যেখানে প্রতিটি জোড়া (p, q) একটি সুন্দর জোড়া? একটি পাইটকে সুন্দর জোড়া বলা হয় যদি এবং শুধুমাত্র যদি এটি এই শর্তগুলির মধ্যে একটি ধারণ করে:1. p এর স্বতন্ত্র মৌলিক ভাজকের সংখ্যার সমতা b এর সমান। উদাহরণস্বরূপ, 18 মানের দুটি স্বতন্ত্র মৌলিক ভাজক রয়েছে:2 এবং 3. 2. p এর সমস্ত ধনাত্মক ভাজকের যোগফলের সমতা q এর সমান।

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

প্রদত্ত অ্যারের যেকোন সিকোয়েন্সের সর্বোচ্চ আকার খুঁজে বের করার প্রোগ্রাম যেখানে পাইথনে প্রতিটি জোড়া চমৎকার

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

  • n :=সংখ্যার আকার
  • তিনটি খালি তালিকা cnt, মোট, ফলাফল সংজ্ঞায়িত করুন
  • সংখ্যায় প্রতিটি i জন্য, করুন
    • গণনা :=০, মোট :=০
    • প্রাইম :=একটি নতুন তালিকা
    • সংখ্যায় প্রতিটি j এর জন্য, করুন
      • যদি (2 থেকে j পরিসরের সকল k-এর জন্য j mod k) সত্য হয়, তাহলে
        • প্রাইম এর শেষে j সন্নিবেশ করান
    • প্রাইম-এ প্রতিটি j-এর জন্য
        করুন
      • যদি i mod j 0 হয়, তাহলে
        • গণনা :=গণনা + 1
    • যদি গণনা জোড় হয়, তাহলে
      • cnt-এর শেষে 'বিজোড়' ঢোকান
    • অন্যথায়,
      • cnt-এর শেষে 'Even' ঢোকান
    • 1 থেকে i রেঞ্জের মধ্যে j-এর জন্য
    • করুন
      • যদি i mod j 0 এর মত হয়, তাহলে
        • tot :=tot + j
    • যদি tot বিজোড় হয়, তাহলে
      • মোট শেষে 'বিজোড়' ঢোকান
    • অন্যথায়,
      • মোট শেষে 'জোর' সন্নিবেশ করান
  • আমি 0 থেকে n-2 রেঞ্জের জন্য, কর
      i+1 থেকে n - 1 রেঞ্জে j-এর জন্য
    • করুন
      • যদি cnt[i] cnt[j] এর সমান বা মোট[i] মোট[j] এর সমান, তাহলে
        • ফলাফলের শেষে সংখ্যা [i] ঢোকান
        • যদি j n-2 এর মত হয়, তাহলে
          • ফলাফলের শেষে সংখ্যা [j] ঢোকান
  • ফলাফল :=ফলাফল থেকে একটি নতুন সেট থেকে একটি নতুন তালিকা
  • ফলাফলের আয়তন

উদাহরণ

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

def solve(nums):
   n = len(nums)
   cnt = []
   total = []
   result = []
   for i in nums:
      count = 0
      tot = 0

      prime = []
      for j in nums:
         if all(j % k for k in range(2, j)) == True:
            prime.append(j)

      for j in prime:
         if i % j == 0:
            count += 1
      if count % 2:
         cnt.append('odd')
      else:
         cnt.append('even')

      for j in range(1,i+1):
         if i % j == 0:
            tot += j

      if tot % 2:
         total.append('odd')
      else:
         total.append('even')

   for i in range(n-1):
      for j in range(i+1, n):

         if cnt[i] == cnt[j] or total[i] == total[j]:
            result.append(nums[i])

            if j == n-1:
               result.append(nums[j])

   result = list(set(result))
   return len(result)

nums = [2,3,6,8]
print(solve(nums))

ইনপুট

15, 3, 8

আউটপুট

3

  1. একটি জোড়া (i, j) খুঁজতে প্রোগ্রাম যেখানে nums[i] + nums[j] + (i -j) পাইথনে সর্বাধিক করা হয়?

  2. পাইথনে সর্বাধিক nCr মান সহ প্রদত্ত অ্যারে থেকে একটি জোড়া খুঁজুন

  3. পাইথনে প্রদত্ত বিটোনিক সিকোয়েন্সে বিটোনিক পয়েন্ট খুঁজুন

  4. পাইথন প্রোগ্রাম প্রদত্ত আকারের গ্রুপে একটি অ্যারে বিপরীত করতে?