पायथनमध्ये सर्वात मोठा सामान्य विभाजक आणि सर्वात कमी सामान्य मल्टिपलची गणना करा आणि मिळवा

व्यवसाय

पायथनमध्ये सर्वात मोठा सामान्य विभाजक आणि किमान सामान्य मल्टिपल कसे काढायचे आणि कसे मिळवायचे याचे वर्णन खाली दिले आहे.

  • दोन पूर्णांकांचा सर्वात मोठा सामान्य विभाजक आणि किमान सामान्य गुणाकार
  • तीन किंवा अधिक पूर्णांकांचा सर्वात मोठा सामान्य विभाजक आणि किमान सामान्य गुणाकार

लक्षात घ्या की मानक लायब्ररीमध्ये प्रदान केलेल्या फंक्शन्सची वैशिष्ट्ये पायथन आवृत्तीवर अवलंबून असतात. मानक लायब्ररीमध्ये नसलेल्या फंक्शनची अंमलबजावणीचे उदाहरण देखील या लेखात दर्शविले आहे.

  • Python 3.4 किंवा पूर्वीचे
    • GCD:fractions.gcd()(फक्त दोन युक्तिवाद)
  • Python 3.5 किंवा नंतरचे
    • GCD:math.gcd()(फक्त दोन युक्तिवाद)
  • Python 3.9 किंवा नंतरचे
    • GCD:math.gcd()(तीन पेक्षा जास्त युक्तिवादांना समर्थन देते)
    • किमान सामान्य भाजक:math.lcm()(तीन पेक्षा जास्त युक्तिवादांना समर्थन देते)

येथे आम्ही मानक पायथन लायब्ररी वापरून पद्धत स्पष्ट करतो; NumPy चा वापर एकाधिक अॅरेच्या प्रत्येक घटकासाठी सर्वात मोठा सामान्य विभाजक आणि किमान सामान्य मल्टिपल काढण्यासाठी केला जाऊ शकतो.

दोन पूर्णांकांचा सर्वात मोठा सामान्य विभाजक आणि किमान सामान्य गुणाकार

GCD

Python 3.5 पासून, गणित मॉड्यूलमध्ये gcd() फंक्शन आहे. gcd() चे संक्षिप्त रूप आहे

  • greatest common divisor

आर्ग्युमेंटमध्ये नमूद केलेल्या पूर्णांकाचा सर्वात मोठा सामान्य विभाजक मिळवतो.

import math

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

लक्षात घ्या की Python 3.4 आणि पूर्वीचे, gcd() फंक्शन अपूर्णांक मॉड्यूलमध्ये आहे, गणित मॉड्यूलमध्ये नाही. अपूर्णांक आयात करणे आवश्यक आहे आणि fractions.gcd().

किमान सामान्य भाजक

lcm() फंक्शन, जे सर्वात कमी सामान्य मल्टिपल मिळवते, Python 3.9 मधील गणित मॉड्यूलमध्ये जोडले गेले. lcm चे संक्षिप्त रूप आहे

  • least common multiple

आर्ग्युमेंटमध्ये नमूद केलेल्या पूर्णांकाचा किमान सामान्य गुणक मिळवते.

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

Python 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

/याचा परिणाम दशांश फ्लोटमध्ये होत असल्याने, दशांश बिंदू कापण्यासाठी आणि पूर्णांक भागाकार निकाल देण्यासाठी दोन बॅकस्लॅश वापरले जातात. लक्षात घ्या की वितर्क पूर्णांक आहे की नाही हे निर्धारित करण्यासाठी कोणतीही प्रक्रिया केली जात नाही.

तीन किंवा अधिक पूर्णांकांचा सर्वात मोठा सामान्य विभाजक आणि किमान सामान्य गुणाकार

Python 3.9 किंवा नंतरचे

Python 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

Python 3.8 किंवा पूर्वीचे

Python 3.8 च्या आधी, gcd() फंक्शन फक्त दोन वितर्कांना समर्थन देत असे.

तीन किंवा अधिक पूर्णांकांचा सर्वात मोठा सामान्य विभाजक किंवा किमान सामान्य गुणक शोधण्यासाठी, विशेषत: क्लिष्ट अल्गोरिदम आवश्यक नाही; हायर-ऑर्डर फंक्शन रिड्यू() वापरून प्रत्येक एकाधिक मूल्यांसाठी सर्वात मोठा सामान्य विभाजक किंवा किमान सामान्य गुणक मोजा.

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

पुन्हा, लक्षात घ्या की Python 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
Copied title and URL