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

प्रायिकता खोजने के लिए कार्यक्रम कि n का कोई भी उचित भाजक Python में एक सम पूर्ण वर्ग संख्या होगी

मान लीजिए कि हमारे पास एक संख्या n है, तो हमें इस संभावना का पता लगाना होगा कि n का कोई भी उचित भाजक एक सम पूर्ण वर्ग होगा।

इसलिए, यदि इनपुट n =36 जैसा है, तो आउटपुट 1/8 होगा क्योंकि 36 के आठ उचित भाजक हैं, ये {1,2,3,4,6,9,12,18} हैं और उनमें से केवल एक संख्या (4) पूर्ण वर्ग और सम है।

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

  • यदि n mod 4 0 के समान नहीं है, तो
    • वापसी 0
  • अन्यथा,
    • एनसी:=एन, पीटीआर:=2
    • l :=एक नई सूची
    • जबकि ptr <=nc का वर्गमूल, करें
      • a :=0
      • जबकि एनसी मॉड पीटीआर 0 के समान है, करें
        • a :=a + 1
        • एनसी :=(एनसी / पीटीआर) की मंजिल
      • अगर एक> 0, तो
        • सूची में a जोड़ें
      • ptr:=ptr + 1
    • अगर एनसी> 1, तो सूची में 1 जोड़ें
    • k :=l[0]
    • d :=k + 1
    • नहीं :=(k / 2) की मंजिल
    • एल में प्रत्येक के लिए [सूचकांक 1 से अंत तक], करते हैं
      • d :=d *(i + 1)
      • नहीं :=नहीं * मंजिल (i / 2) + 1
    • d :=d - 1
    • यदि n एक पूर्ण वर्ग है, तो
      • नहीं :=नहीं - 1
    • g :=d का gcd और नहीं
    • d :=d / g का तल
    • नहीं :=संख्या / g का तल
    • यदि नहीं 0 के समान है, तो
      • वापसी 0
    • अन्यथा,
      • एक भिन्न संख्या/डी लौटाएं

उदाहरण

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

from math import gcd

def solve(n):
   if n % 4 != 0:
      return 0
   else:
      nc = n
      ptr = 2
      l = []
      while ptr <= nc ** 0.5:
         a = 0
         while nc % ptr == 0:
            a += 1
            nc = nc / ptr
         if a > 0:
            l += [a]
         ptr += 1
      if nc > 1:
         l += [1]
      k = l[0]
      d = k + 1
      no = int(k / 2)
      for i in l[1:]:
         d = d * (i + 1)
         no *= int(i / 2) + 1
      d = d - 1
      if int(n ** 0.5) ** 2 == n:
         no -= 1
      g = gcd(d, no)
      d = d // g
      no = no // g
      if no == 0:
         return 0
      else:
         return str(no) + '/' + str(d)

n = 36
print(solve(n))

इनपुट

4, 27

आउटपुट

1/8

  1. सूची में किन्हीं दो संख्याओं को खोजने के लिए प्रोग्राम जो कि पायथन में k तक का योग करता है

    मान लीजिए कि हमारे पास संख्याओं की एक सूची है जिसे अंक कहा जाता है और हमारे पास एक और संख्या k है, हमें यह जांचना है कि सूची में मौजूद कोई भी दो संख्याएं k या अब तक जुड़ती हैं या नहीं। समान तत्वों का दो बार उपयोग नहीं किया जाना चाहिए। और संख्याएँ ऋणात्मक या 0 हो सकती हैं। इसलिए, यदि इनपुट nums =[45

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

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

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

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