गणना करें और पायथन में सबसे बड़ा सामान्य भाजक और कम से कम सामान्य गुणक प्राप्त करें

व्यापार

पायथन में सबसे बड़े सामान्य भाजक और कम से कम सामान्य गुणक की गणना और प्राप्त करने का तरीका निम्नलिखित है।

  • दो पूर्णांकों का सबसे बड़ा सामान्य भाजक और सबसे छोटा सामान्य गुणज
  • तीन या अधिक पूर्णांकों का सबसे बड़ा सामान्य भाजक और सबसे छोटा सामान्य गुणक

ध्यान दें कि मानक पुस्तकालय में प्रदान किए गए कार्यों के विनिर्देश पायथन संस्करण के आधार पर भिन्न होते हैं। एक फ़ंक्शन का एक उदाहरण कार्यान्वयन जो मानक पुस्तकालय में नहीं है, इस आलेख में भी दिखाया गया है।

  • पायथन 3.4 या इससे पहले
    • जीसीडी:fractions.gcd()(केवल दो तर्क)
  • पायथन 3.5 या बाद में
    • जीसीडी:math.gcd()(केवल दो तर्क)
  • पायथन 3.9 या बाद में
    • जीसीडी:math.gcd()(तीन से अधिक तर्कों का समर्थन करता है)
    • अल्प सामान्य विभाजक:math.lcm()(तीन से अधिक तर्कों का समर्थन करता है)

यहां हम मानक पायथन पुस्तकालय का उपयोग करके विधि की व्याख्या करते हैं; NumPy का उपयोग कई सरणियों के प्रत्येक तत्व के लिए सबसे बड़े सामान्य भाजक और कम से कम सामान्य गुणकों की गणना के लिए आसानी से किया जा सकता है।

दो पूर्णांकों का सबसे बड़ा सामान्य भाजक और सबसे छोटा सामान्य गुणज

जीसीडी

पायथन 3.5 के बाद से, गणित मॉड्यूल में एक gcd() फ़ंक्शन है। gcd () के लिए एक परिचित करा रहा है

  • greatest common divisor

तर्क में निर्दिष्ट पूर्णांक का सबसे बड़ा सामान्य भाजक देता है।

import math

print(math.gcd(6, 4))
# 2

ध्यान दें कि पायथन 3.4 और इससे पहले के संस्करण में, gcd() फ़ंक्शन भिन्न मॉड्यूल में है, गणित मॉड्यूल में नहीं। भिन्नों को आयात किया जाना चाहिए और भिन्नों.gcd().

अल्प सामान्य विभाजक

एलसीएम () फ़ंक्शन, जो कम से कम सामान्य गुणक देता है, को पायथन 3.9 में गणित मॉड्यूल में जोड़ा गया था। lcm का संक्षिप्त रूप है

  • least common multiple

तर्क में निर्दिष्ट पूर्णांक का सबसे छोटा सामान्य गुणक देता है।

print(math.lcm(6, 4))
# 12

पायथन 3.8 से पहले, lcm () प्रदान नहीं किया गया है, लेकिन gcd () का उपयोग करके आसानी से गणना की जा सकती है।

lcm(a, b) = a * b / gcd(a, b)

कार्यान्वयन उदाहरण।

def my_lcm(x, y):
    return (x * y) // math.gcd(x, y)

print(my_lcm(6, 4))
# 12

/चूंकि यह एक दशमलव फ्लोट में परिणाम देता है, दो बैकस्लैश का उपयोग दशमलव बिंदु को छोटा करने और एक पूर्णांक विभाजन परिणाम वापस करने के लिए किया जाता है। ध्यान दें कि यह निर्धारित करने के लिए कोई प्रसंस्करण नहीं किया जाता है कि तर्क एक पूर्णांक है या नहीं।

तीन या अधिक पूर्णांकों का सबसे बड़ा सामान्य भाजक और सबसे छोटा सामान्य गुणक

पायथन 3.9 या बाद में

पायथन 3.9 से शुरू होकर, निम्नलिखित सभी फ़ंक्शन तीन से अधिक तर्कों का समर्थन करते हैं।

  • math.gcd()
  • math.lcm()
print(math.gcd(27, 18, 9))
# 9

print(math.gcd(27, 18, 9, 3))
# 3

print(math.lcm(27, 9, 3))
# 27

print(math.lcm(27, 18, 9, 3))
# 54

*यदि आप किसी सूची के तत्वों के सबसे बड़े सामान्य भाजक या कम से कम सामान्य गुणक की गणना करना चाहते हैं, तो इसके साथ तर्क निर्दिष्ट करें।

l = [27, 18, 9, 3]
print(math.gcd(*l))
# 3

print(math.lcm(*l))
# 54

पायथन 3.8 या इससे पहले

पायथन 3.8 से पहले, gcd() फ़ंक्शन केवल दो तर्कों का समर्थन करता था।

तीन या अधिक पूर्णांकों का सबसे बड़ा सामान्य भाजक या कम से कम सामान्य गुणक खोजने के लिए, किसी विशेष रूप से जटिल एल्गोरिथ्म की आवश्यकता नहीं है; बदले में उच्च-क्रम फ़ंक्शन कम करें () का उपयोग करके प्रत्येक एकाधिक मानों के लिए सबसे बड़े सामान्य विभाजक या कम से कम सामान्य एकाधिक की गणना करें।

जीसीडी

from functools import reduce

def my_gcd(*numbers):
    return reduce(math.gcd, numbers)

print(my_gcd(27, 18, 9))
# 9

print(my_gcd(27, 18, 9, 3))
# 3

l = [27, 18, 9, 3]
print(my_gcd(*l))
# 3

फिर से, ध्यान दें कि पायथन 3.4 से पहले, gcd() फ़ंक्शन भिन्न मॉड्यूल में है, गणित मॉड्यूल में नहीं।

अल्प सामान्य विभाजक

def my_lcm_base(x, y):
    return (x * y) // math.gcd(x, y)

def my_lcm(*numbers):
    return reduce(my_lcm_base, numbers, 1)

print(my_lcm(27, 9, 3))
# 27

print(my_lcm(27, 18, 9, 3))
# 54

l = [27, 18, 9, 3]
print(my_lcm(*l))
# 54