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

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


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

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

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

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

उदाहरण

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

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 हो

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

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

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

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

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