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

पायथन में एन को 1 तक कम करने के लिए अधिकतम संचालन खोजें


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

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

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

  • एन:=1000005

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

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

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

    • अगर फ़ैक्टर [i] 0 के समान है, तो

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

        • कारक [जे]:=कारक [जे / आई] + 1

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

    • कारक [i]:=कारक [i] + कारक [i - 1];

  • वापसी कारक[ए] - कारक[बी]

उदाहरण

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

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. पायथन में समान लंबाई के k रिबन की अधिकतम लंबाई खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास सकारात्मक संख्याओं की एक सूची है, जो रिबन की लंबाई का प्रतिनिधित्व करती है और एक मान k भी है। हम जितनी बार चाहें रिबन काट सकते हैं, हमें सबसे बड़ी लंबाई r ढूंढनी होगी जैसे कि हमारे पास लंबाई r के k रिबन हो सकें। अगर हमें ऐसा समाधान नहीं मिल रहा है, तो -1 पर लौटें। इसलिए, यदि

  1. पायथन में अधिकांश k नकारात्मक संचालन करके अधिकतम योग प्राप्त करने का कार्यक्रम

    मान लीजिए कि हमारे पास nums नामक तत्वों की एक सूची है, हमारे पास एक और मान k भी है। आइए अब हम एक संक्रिया पर विचार करें जहां हम अंकों में से एक अवयव का चयन करते हैं और उसे नकारते हैं। हम ठीक k संख्या में संक्रियाएँ कर सकते हैं। हमें अधिकतम परिणामी योग प्राप्त करना होगा जो उत्पन्न किया जा सकता है। इ

  1. पायथन में अधिकतम भवन ऊंचाई खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास एक मान n है और जोड़े की एक और सूची है जिसे प्रतिबंध कहा जाता है। हम एक शहर में नई इमारतें बनाना चाहते हैं। लेकिन कुछ प्रतिबंध हैं। हम एक लाइन में बना सकते हैं और इमारतों को 1 से n तक लेबल किया जाता है। प्रतिबंधों के दो पैरामीटर हैं, इसलिए प्रतिबंध [i] =(id_i, max_height_i) इंग