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

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

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

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

সমাধানের ধাপসমূহ

  • factors := একটি নতুন লিস্ট
  • for i in range 1 to int(sqrt(n)) + 1:
    • if n % i == 0:
      • i কে factors-এ যোগ করুন
      • n // i কে factors-এ যোগ করুন
  • factors লিস্টটি সর্ট করুন
  • factors প্রদর্শন করুন
  • final_prod := 1, flag := 1
  • তিনটি নেস্টেড লুপ (i, j, k) চালান factors-এ:
    • y := n - factors[i] - factors[j] - factors[k]
    • যদি y <= 0 হয়, তবে ব্রেক করুন
    • যদি n % y == 0 হয়, তবে flag := 0 এবং final_prod আপডেট করুন
  • যদি flag == 0 হয়, তবে final_prod প্রিন্ট করুন, অন্যথায় "Not possible" প্রিন্ট করুন

উদাহরণ

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. পাইথনে বিটওয়াইজ AND ও OR-র সর্বোচ্চ যোগফল দিয়ে সাবসিকোয়েন্স খুঁজে বের করা

  2. একটি সংখ্যার সম ফ্যাক্টরের যোগফল বের করার পাইথন প্রোগ্রাম

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

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