Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

अधिकतम उत्पाद और एन के बराबर योग के साथ एन के चार कारक खोजें - पायथन में सेट -2


मान लीजिए कि हमारे पास एक संख्या N है; हमें N के गुणनखंड ज्ञात करने हैं और N के केवल चार गुणनखंडों का गुणनफल इस प्रकार लौटाना है कि -

  • चार कारकों का योग N के समान है।

  • चार कारकों का गुणनफल अधिकतम होता है।

उत्पाद को अधिकतम करने के लिए सभी चार कारक एक दूसरे के बराबर हो सकते हैं।

इसलिए, यदि इनपुट एन =60 की तरह है, तो आउटपुट 50625 होगा क्योंकि सभी कारक हैं → 1 2 3 4 5 6 10 12 15 20 30 60 और उनका उत्पाद 50625 है, क्योंकि हम 15 को चार बार चुना गया है उत्पाद को सबसे बड़ा बनाएं।

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • my_map :=एक नया नक्शा

  • v:=एक नई सूची, v1:=एक नई सूची

  • i के लिए श्रेणी 1 से (n) + 1 के वर्गमूल की सीमा तक, करें

    • अगर n mod i 0 के समान है, तो

      • v के अंत में i डालें

      • यदि i (n / i) के पूर्णांक भाग के समान नहीं है और i 1 के समान नहीं है, तो

        • v के अंत में (n / i) का पूर्णांक भाग डालें

  • s :=v का आकार

  • अधिकतम :=-1

  • map1:=आकार की एक सरणी (n + 5) इसे 0 से भरें

  • मैं के लिए 0 से एस की सीमा में, करते हैं

    • j के लिए i से s की श्रेणी में, करें

      • अगर v[i] + v[j]

        • v1 के अंत में v[i] + v[j] डालें

        • map1[v[i] + v[j]]:=[v[i], v[j]]

        • my_map[v[i] + v[j]] :=1

  • s :=v1 का आकार

  • मैं के लिए 0 से एस की सीमा में, करते हैं

    • तत्व:=n - (v1[i])

    • अगर my_map में तत्व है, तो

      • a:=map1[v1[i], 0]

      • बी:=नक्शा1[v1[i], 1]

      • सी:=नक्शा1[n - v1[i], 0]

      • d:=map1[n - v1[i], 1]

      • अधिकतम :=अधिकतम a * b * c * d, अधिकतम

  • यदि अधिकतम -1 के समान है, तो

    • "संभव नहीं" प्रदर्शित करें

  • अन्यथा,

    • अधिकतम प्रदर्शित करें

उदाहरण

आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

from math import sqrt, ceil, floor
def get_product(n):
   my_map = dict()
   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. एक तत्व खोजें जो पायथन में समान उत्पाद के साथ सरणी को दो उप-सरणी में विभाजित करता है

    मान लीजिए कि हमारे पास आकार N की एक सरणी है; हमें एक ऐसा तत्व खोजना है जो समान उत्पाद के साथ सरणी को दो अलग-अलग उप-सरणी में विभाजित करता है। वापसी -1 यदि ऐसा कोई विभाजन संभव नहीं है। इसलिए, यदि इनपुट [2,5,3,2,5] जैसा है, तो आउटपुट 3 होगा तो उप-सरणी हैं:{2, 5} और {2, 5} इसे हल करने के लिए, हम इन चर

  1. पायथन प्रोग्राम में किसी संख्या के सम गुणनखंडों का योग ज्ञात करें

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें एक संख्या दी गई है, हमें संख्या के सभी सम गुणनखंडों का योग प्रदर्शित करना होगा। दृष्टिकोण हम जाँचते हैं कि क्या संख्या विषम है, फिर कोई सम गुणनखंड नहीं हैं, इसलिए 0 लौटाएँ। यदि संख्या सम है, तो हम गणना के माध्

  1. किसी संख्या के विषम गुणनखंडों का योग ज्ञात करने के लिए पायथन कार्यक्रम

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे - समस्या कथन किसी संख्या इनपुट n को देखते हुए, कार्य किसी संख्या के विषम गुणनखंडों का योग ज्ञात करना है। यहां हमें सबसे पहले सभी सम कारकों को खत्म करने की जरूरत है। सभी सम गुणनखंडों को हटाने के लिए, हम बार-बार n को 2 से विभाज्य ह