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

n व्यक्तियों द्वारा फ्लिप करने के बाद ऑन रहने वाले स्विच की संख्या गिनने का पायथन प्रोग्राम


मान लीजिए हमारे पास एक संख्या n है, और एक कमरे में n स्विच हैं, और सभी स्विच ऑफ हैं। अब n लोग निम्नानुसार स्विच फ्लिप करते हैं:

  • व्यक्ति 1 उन सभी स्विच को फ्लिप करता है जो 1 के गुणक हैं (यानी सभी स्विच)।
  • व्यक्ति 2 उन स्विच को फ्लिप करता है जो 2 के गुणक हैं (2, 4, 6, ...)
  • व्यक्ति i उन स्विच को फ्लिप करता है जो i के गुणक हैं।

हमें अंत में ऑन रहने वाले स्विच की संख्या ढूंढनी है।

उदाहरण के लिए, यदि इनपुट n = 5 है, तो आउटपुट 2 होगा, क्योंकि प्रारंभ में सभी ऑफ हैं [0, 0, 0, 0, 0], व्यक्ति 1 ने सभी फ्लिप किए [1, 1, 1, 1, 1], व्यक्ति 2 ने ऐसे फ्लिप किए [1, 0, 1, 0, 1], फिर व्यक्ति 3 ने [1, 0, 0, 0, 0], व्यक्ति 4 ने [1, 0, 0, 1, 0]

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

  • l := 0, r := n
  • जब तक l <= r, करें
    • mid := l + (r - l) / 2
    • यदि mid^2 <= n < (mid + 1)^2, तो
      • mid लौटाएं
    • अन्यथा जब n < mid^2, तो
      • r := mid
    • अन्यथा,
      • l := mid + 1

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

उदाहरण

class Solution:
    def solve(self, n):
        l, r = 0, n
        while l <= r:
            mid = l + (r - l) // 2
            if mid * mid <= n < (mid + 1) * (mid + 1):
                return mid
            elif n < mid * mid:
                r = mid
            else:
                l = mid + 1

ob = Solution()
n = 5
print(ob.solve(n))

इनपुट

5

आउटपुट

2

  1. - Python प्रोग्राम - अन्य अंतराल के अंदर पूरी तरह से समाहित अंतराल की संख्या गिनें

    अंतराल की एक सूची दी गई है। इस सूची में interval[i] में [start, end] मान हैं। हमें उन अंतराल की संख्या खोजनी है जो किसी अन्य अंतराल द्वारा समाहित हैं। यदि कोई अंतराल कई अन्य अंतराल द्वारा समाहित है तो उसे केवल एक बार गिना जाना चाहिए। एक अंतराल [s0, e0] दूसरे अंतराल [s1, e1] के अंदर है जब = s1 and e0

  1. पायथन में ऐरे में x से बड़े सभी वैल्यूज को फ़िल्टर करने का प्रोग्राम पायथन में ऐरे में x से बड़े सभी वैल्यूज को फ़िल्टर करने का प्रोग्राम

    मान लीजिए हमारे पास nums नामक संख्याओं की सूची है। हमारे पास x नामक एक और संख्या भी है। हमें nums से उन सभी नंबरों को फ़िल्टर करके ढूंढना है जो x से कम हैं। पायथन में filter() मेथड होता है जो फंक्शन को आर्गुमेंट के रूप में लेता है और इस फंक्शन का उपयोग करके फ़िल्टर करता है। तो, यदि इनपुट nums = [1,5

  1. पायथन में दिए गए एज को शामिल करने वाले अद्वितीय पथों की संख्या गिनने का प्रोग्राम पायथन में दिए गए एज को शामिल करने वाले अद्वितीय पथों की संख्या गिनने का प्रोग्राम

    मान लीजिए हमारे पास (u, v) के रूप में एज की सूची है जो एक ट्री दर्शाती है। प्रत्येक एज के लिए हमें उन अद्वितीय पथों की कुल संख्या ज्ञात करनी है जिनमें वह एज शामिल है, उसी क्रम में जैसे इनपुट में दिया गया है। उदाहरण के लिए, यदि इनपुट है edges = [[0, 1],[0, 2],[1, 3],[1, 4]], तो आउटपुट [6, 4, 4, 4] ह