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

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

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

ইনপুট: N=60 → আউটপুট 50625 (ফ্যাক্টর: 1,2,3,4,5,6,10,12,15,20,30,60; 15 চারবার ব্যবহার করা হয়েছে)।

সমাধানের ধাপসমূহ (হ্যাশ ম্যাপ + দুটি ফ্যাক্টরের যোগফল)

  • my_map = {}, v=[], v1=[]
  • for i in 1..ceil(sqrt(n)): যদি n%i==0: v-এ i যোগ করুন; যদি i!=n//i এবং i!=1: v-এ n//i যোগ করুন
  • s = len(v); maximum=-1; map1[n+5] = 0
  • for i in 0..s-1:
    • for j in i..s-1:
      • যদি v[i]+v[j] < n: v1-এ যোগ করুন; map1[v[i]+v[j]] = [v[i],v[j]]; my_map[v[i]+v[j]] = 1
  • for i in 0..len(v1)-1:
    • element = n - v1[i]
    • যদি element in my_map:
      • a,b = map1[v1[i]]; c,d = map1[element]
      • maximum = max(a*b*c*d, maximum)
  • যদি maximum==-1: "Not Possible" প্রিন্ট করুন, অন্যথায় maximum প্রিন্ট করুন

উদাহরণ

from math import sqrt, ceil, floor
def get_product(n):
    my_map = {}
    v = []; v1 = []
    for i in range(1, ceil(sqrt(n)) + 1):
        if n % i == 0:
            v.append(i)
            if i != (n // i) and i != 1:
                v.append(n // i)
    s = len(v)
    maximum = -1
    map1 = [0]*(n + 5)
    for i in range(s):
        for j in range(i, s):
            if v[i] + v[j] < n:
                v1.append(v[i] + v[j])
                map1[v[i] + v[j]] = [v[i], v[j]]
                my_map[v[i] + v[j]] = 1
    s = len(v1)
    for i in range(s):
        element = n - v1[i]
        if element in my_map:
            a = map1[v1[i]][0]
            b = map1[v1[i]][1]
            c = map1[n - v1[i]][0]
            d = map1[n - v1[i]][1]
            maximum = max(a * b * c * d, maximum)
    if maximum == -1:
        print("Not Possible")
    else:
        print("Maximum product", maximum)
n = 60
get_product(n)

ইনপুট

60

আউটপুট

Maximum product 50625
  1. পাইথনে বিটওয়াইজ AND ও OR-র সর্বোচ্চ যোগফল দিয়ে সাবসিকোয়েন্স খুঁজে বের করা

  2. পাইথন - অ্যারে থেকে এমন একটি উপাদান খুঁজে বের করা যা দুটি সাবঅ্যারেতে সমান গুণফল দেয়

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

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