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

Python में N के चार गुणनखोजें जिनका अधिकतम गुणनफल और योग N के बराबर हो - सेट-2


मान लीजिए हमारे पास एक संख्या N है; हमें 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 का आकार

  • maximum := -1

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

  • i के लिए 0 से s की सीमा में, करें

    • j के लिए i से s की सीमा में, करें

      • यदि v[i] + v[j] < n, तो

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

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

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

  • s := v1 का आकार

  • i के लिए 0 से s की सीमा में, करें

    • element := n - (v1[i])

    • यदि element, 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 := a * b * c * d, maximum का अधिकतम

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

    • "Not Possible" प्रदर्शित करें

  • अन्यथा,

    • maximum प्रदर्शित करें

उदाहरण

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

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. - Python - ऐरे में वह एलिमेंट ढूंढना जो इसे समान प्रोडक्ट वाले दो सबऐरे में विभाजित करता है

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

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

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

  1. पायथन प्रोग्राम: संख्या के ऑड फैक्टर्स का योग ढूंढें पायथन प्रोग्राम: संख्या के ऑड फैक्टर्स का योग ढूंढें

    इस लेख में, हम नीचे दिए गए प्रॉब्लम स्टेटमेंट के समाधान के बारे में सीखेंगे: प्रॉब्लम स्टेटमेंट एक नंबर इनपुट n दिए जाने पर, कार्य संख्या के ऑड फैक्टर्स का योग निकालना है। यहां हमें पहले सभी इवन फैक्टर्स को समाप्त करने की आवश्यकता है। सभी इवन फैक्टर्स को हटाने के लिए, हम n को बार-बार तब तक विभाजित