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

Python में N को 1 तक कम करने के लिए अधिकतम ऑपरेशन ढूंढना


मान लीजिए हमारे पास दो संख्याएं P और Q हैं और वे एक संख्या N = (P!/Q!) बनाते हैं। हमें N को 1 तक कम करना है अधिकतम संभव ऑपरेशन करके। प्रत्येक ऑपरेशन में, कोई N को N/X से बदल सकता है जब N, X से विभाज्य हो। हम अधिकतम ऑपरेशन की संख्या वापस करेंगे जो संभव हो सकती है।

तो, यदि इनपुट A = 7, B = 4 की तरह है, तो आउटपुट 4 होगा क्योंकि N 210 है और भाजक 2, 3, 5, 7 हैं।

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

  • N := 1000005

  • factors := N आकार की एक सरणी और 0 से भरें

  • मुख्य विधि से, निम्नलिखित करें -

  • i के लिए 2 से N की सीमा में, करें

    • यदि factors[i], 0 के समान है, तो

      • j के लिए i से N की सीमा में, प्रत्येक चरण में i से अपडेट करें, करें

        • factors[j] := factors[j / i] + 1

  • i के लिए 1 से N की सीमा में, करें

    • factors[i] := factors[i] + factors[i - 1];

  • factors[a] - factors[b] वापस करें

उदाहरण

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

N = 1000005 factors = [0] * N; def get_prime_facts() :     for i in range(2, N) :         if (factors[i] == 0) :             for j in range(i, N, i) :                 factors[j] = factors[j // i] + 1     for i in range(1, N) :         factors[i] += factors[i - 1]; get_prime_facts(); a = 7; b = 4; print(factors[a] - factors[b])

इनपुट

7,4

आउटपुट

4

  1. - Python प्रोग्राम - k रिबन की समान लंबाई की अधिकतम लंबाई खोजें

    सकारात्मक संख्याओं की सूची दी गई है जो रिबन की लंबाई दर्शाती है, और एक मान k। हम रिबन को जितनी बार चाहें काट सकते हैं, हमें सबसे बड़ी लंबाई r खोजनी है जिससे हम k रिबन लंबाई r के प्राप्त कर सकें। यदि ऐसा समाधान नहीं मिलता, तो -1 लौटाएं। उदाहरण इनपुट: ribbons = [1, 2, 5, 7, 15], k = 5 आउटपुट: 5 व्याख

  1. - पायथन में अधिकतम k नेगेट ऑपरेशन करके अधिकतम योग ढूंढना

    मान लीजिए हमारे पास nums नामक तत्वों की एक लिस्ट है और हमारे पास एक और मान k है। अब एक ऑपरेशन पर विचार करें जहां हम nums से एक तत्व चुनते हैं और उसे नेगेट करते हैं। हम ठीक k संख्या में ऑपरेशन कर सकते हैं। हमें अधिकतम परिणामी योग ढूंढना है जो उत्पन्न किया जा सकता है। उदाहरण के लिए, यदि इनपुट है num

  1. Python में इमारतों की अधिकतम ऊंचाई ज्ञात करें Python में इमारतों की अधिकतम ऊंचाई ज्ञात करें

    n इमारतें एक पंक्ति में (1 से n लेबल)। प्रतिबंध: restrictions[i] = (id, max_height)। नियम: ऊंचाई ≥ 0, पहली इमारत की ऊंचाई = 0, आसन्न इमारतों में ऊंचाई अंतर ≤ 1। अधिकतम संभव ऊंचाई खोजें। एल्गोरिदम: दो पास + शिखर गणना प्रतिबंधों को id द्वारा सॉर्ट करें फॉरवर्ड पास: बाएं से दाएं, प्रत्येक प्रतिबंध को