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

Python में gcd() से प्रत्येक जोड़े के मूल नंबर ढूंढना


मान लीजिए हमारे पास एक सरणी A है जहां दूसरी सरणी के हर संभव जोड़े का GCD दिया गया है, हमें मूल संख्याओं को ढूंढना है जिनका उपयोग दी गई GCD सरणी की गणना के लिए किया गया है।

तो, यदि इनपुट A = [6, 1, 1, 13] की तरह है, तो आउटपुट [13, 6] होगा क्योंकि gcd(13, 13) 13 है, gcd(13, 6) 1 है, gcd(6, 13) 1 है, gcd(6, 6) 6 है।

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

  • n := A का आकार

  • सरणी A को अवरोही क्रम में क्रमबद्ध करें

  • occurrence := A[0] के आकार की एक सरणी और 0 से भरें

  • i के लिए 0 से n की सीमा में, करें

    • occurrence[A[i]] := occurrence[A[i]] + 1

  • size := n के वर्गमूल का पूर्णांक भाग

  • res := A के आकार के समान आकार की एक सरणी और 0 से भरें

  • l := 0

  • i के लिए 0 से n की सीमा में, करें

    • यदि occurrence[A[i]] > 0, तो

      • res[l] := A[i]

      • occurrence[res[l]] := occurrence[res[l]] - 1

      • l := l + 1

      • j के लिए 0 से l की सीमा में, करें

        • यदि i, j के समान नहीं है, तो

          • g := gcd(A[i], res[j])

          • occurrence[g] := occurrence[g] - 2

  • res[इंडेक्स 0 से size तक] लौटाएं

उदाहरण

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

from math import sqrt, gcd def get_actual_array(A):     n = len(A)     A.sort(reverse = True)     occurrence = [0 for i in range(A[0] + 1)]     for i in range(n):         occurrence[A[i]] += 1     size = int(sqrt(n))     res = [0 for i in range(len(A))]     l = 0     for i in range(n):         if (occurrence[A[i]] > 0):             res[l] = A[i]             occurrence[res[l]] -= 1             l += 1             for j in range(l):                 if (i != j):                     g = gcd(A[i], res[j])                     occurrence[g] -= 2     return res[:size] A = [6, 1, 1, 13] print(get_actual_array(A))

इनपुट

[6, 1, 1, 13]

आउटपुट

[13, 6]

  1. पायथन प्रोग्राम: दो क्रमबद्ध सरणियों से निकटतम जोड़ी खोजें पायथन प्रोग्राम: दो क्रमबद्ध सरणियों से निकटतम जोड़ी खोजें

    इस लेख में हम दी गई समस्या के समाधान के बारे में जानेंगे। समस्या कथन हमें दो सरणियाँ दी गई हैं, हमें दो क्रमबद्ध सरणियों से निकटतम जोड़ी खोजने की आवश्यकता है। उदाहरण # sys मॉड्यूल import sys # जोड़ी def print_(ar1, ar2, m, n, x): # अंतर diff = sys.maxsize # इंडेक्स l = 0 r = n-1

  1. - पायथन का उपयोग करके HCF या GCD कैसे खोजें?

    दो या अधिक इंटीजर का हाईएस्ट कॉमन फैक्टर या ग्रेटेस्ट कॉमन डिवाइजर सबसे बड़ा पॉजिटिव इंटीजर है जो संख्याओं को बिना शेष के समान रूप से विभाजित करता है। उदाहरण के लिए, 8 और 12 का GCD 4 है। y: smaller = y else: smaller = x for i in range(1, smaller + 1): if((x % i == 0) and (y % i == 0)):

  1. - पायथन में स्ट्रिंग से दशमलव संख्याएं निकालें

    RegEx मॉड्यूल का उपयोग करना सबसे तेज़ तरीका है। >>> import re मान लें कि स्ट्रिंग में पूर्णांक और फ्लोटिंग पॉइंट संख्याएं दोनों हैं जैसे: >>> s = my age is 25. I have 55.50 percent marks and 9764135408 is my number findall() फ़ंक्शन दिए गए पैटर्न से मैच करने वाली संख्याओं की सूची