কম্পিউটার

পাইথন প্রোগ্রামে সর্বোচ্চ গুণফলের সাথে N-এর চারটি গুণনীয়ক এবং N-এর সমান যোগফল নির্ণয় করুন - সেট-2


ধরুন আমাদের একটি সংখ্যা N আছে, আমাদের N-এর সমস্ত গুণনীয়ক খুঁজে বের করতে হবে এবং N-এর চারটি গুণনীয়কের গুণফল ফেরত দিতে হবে যেমন:চারটি গুণনীয়কের যোগফল N-এর সমান। চারটি গুণনীয়কের গুণফল সর্বাধিক। পণ্যটিকে সর্বাধিক করার জন্য চারটি কারণ একে অপরের সমান হতে পারে।

সুতরাং, যদি ইনপুটটি N =60 এর মত হয়, তাহলে আউটপুট হবে সমস্ত কারণগুলি হল -> 1 2 3 4 5 6 10 12 15 20 30 60 এবং পণ্য হল 50625, যেহেতু আমরা 15 কে পণ্য তৈরি করতে চারবার নির্বাচিত করেছি। বৃহত্তম।

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

  • ফ্যাক্টর :=একটি নতুন তালিকা

  • 1 থেকে পূর্ণসংখ্যা (n-এর বর্গমূল) + 1-এর মধ্যে i এর জন্য, do

    • যদি n mod i 0 এর মত হয়, তাহলে

      • গুণনীয়কের শেষে i সন্নিবেশ করান

      • ফ্যাক্টরের শেষে (n / i) এর পূর্ণসংখ্যা সন্নিবেশ করুন

  • তালিকার উপাদানগুলি সাজান

  • ডিসপ্লে ফ্যাক্টর

  • final_prod :=1, পতাকা :=1

  • আমি 0 থেকে ফ্যাক্টরের আকারের রেঞ্জের জন্য, কর

    • j রেঞ্জ i থেকে ফ্যাক্টরের আকারের জন্য, করুন

      • k এর জন্য j থেকে ফ্যাক্টরের আকার পর্যন্ত, করুন

        • y :=n - ফ্যাক্টর[i] - ফ্যাক্টর[j] - ফ্যাক্টর[k]

        • যদি y <=0, তাহলে

          • লুপ থেকে বেরিয়ে আসুন

        • যদি n mod y 0 এর মত হয়, তাহলে

          • পতাকা :=0

  • final_prod :=সর্বাধিক ফ্যাক্টর[i] * ফ্যাক্টর[j] * ফ্যাক্টর[k] * y, final_prod

  • যদি পতাকা 0 এর মত হয়, তাহলে

    • চূড়ান্ত_পণ্য প্রদর্শন করুন

  • অন্যথায়,

    • প্রদর্শন করুন "সম্ভব নয়"

উদাহরণ

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

from math import *
def get_factors(n) :
   factors = []
   for i in range(1, int(sqrt(n)) + 1) :
      if n % i == 0 :
         factors.append(i)
         factors.append(n // i)
   factors.sort()
   print("Factors are ", factors)
   final_prod = 1
   flag = 1
   for i in range(0, len(factors)) :
      for j in range(i, len(factors)) :
         for k in range(j, len(factors)) :
            y = n - factors[i] - factors[j] - factors[k]
            if y <= 0 :
               break
            if n % y == 0 :
               flag = 0
               final_prod = max(factors[i] * factors[j] * factors[k] * y , final_prod)
   if flag == 0 :
      print("Product is", final_prod)
   else :
      print("Not possible")

n = 60
get_factors(n)

ইনপুট

60

আউটপুট

Factors are [1, 2, 3, 4, 5, 6, 10, 12, 15, 20, 30, 60] Product is 50625

  1. পাইথনে সর্বাধিক Bitwise AND এবং Bitwise OR সহ পরবর্তীগুলি খুঁজুন

  2. পাইথন প্রোগ্রামে একটি সংখ্যার জোড় গুণনীয়কের সমষ্টি খুঁজুন

  3. একটি সংখ্যার বিজোড় গুণনীয়কের যোগফল খুঁজে বের করার জন্য পাইথন প্রোগ্রাম

  4. একটি সংখ্যার জোড় গুণকের যোগফল খুঁজে বের করার জন্য পাইথন প্রোগ্রাম