गणना गर्नुहोस् र पाइथनमा सबैभन्दा ठूलो सामान्य भाजक र कम्तिमा सामान्य मल्टिपल प्राप्त गर्नुहोस्

व्यापार

पाइथनमा सबैभन्दा ठूलो सामान्य भाजक र न्यूनतम सामान्य गुणक कसरी गणना गर्ने र प्राप्त गर्ने भन्ने ’bout निम्न वर्णन गरिएको छ।

  • दुई पूर्णांकहरूको सबैभन्दा ठूलो सामान्य भाजक र सबैभन्दा कम सामान्य गुणन
  • तीन वा बढी पूर्णाङ्कहरूको सबैभन्दा ठूलो सामान्य भाजक र न्यूनतम सामान्य गुणन

नोट गर्नुहोस् कि मानक पुस्तकालयमा प्रदान गरिएका प्रकार्यहरूको विशिष्टताहरू पाइथन संस्करणको आधारमा भिन्न हुन्छन्। मानक पुस्तकालयमा नभएको प्रकार्यको उदाहरण कार्यान्वयन पनि यस लेखमा देखाइएको छ।

  • Python 3.4 वा पहिले
    • GCD:fractions.gcd()(केवल दुई तर्क)
  • Python 3.5 वा पछिको
    • GCD:math.gcd()(केवल दुई तर्क)
  • Python 3.9 वा पछिको
    • GCD:math.gcd()(तीन भन्दा बढी तर्कहरू समर्थन गर्दछ)
    • कम से कम सामान्य भाजक:math.lcm()(तीन भन्दा बढी तर्कहरू समर्थन गर्दछ)

यहाँ हामी मानक पाइथन पुस्तकालय प्रयोग गरेर विधि व्याख्या गर्छौं; NumPy सजिलै संग धेरै arrays को प्रत्येक तत्व को लागी सबै भन्दा ठूलो सामान्य भाजक र कम से कम सामान्य गुणन गणना गर्न प्रयोग गर्न सकिन्छ।

दुई पूर्णांकहरूको सबैभन्दा ठूलो सामान्य भाजक र सबैभन्दा कम सामान्य गुणन

GCD

पाइथन ३.५ देखि, गणित मोड्युलमा gcd() प्रकार्य छ। gcd() को संक्षिप्त रूप हो

  • greatest common divisor

तर्कमा निर्दिष्ट गरिएको पूर्णांकको सबैभन्दा ठूलो सामान्य भाजक फर्काउँछ।

import math

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

ध्यान दिनुहोस् कि पाइथन 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() प्रकार्यले दुईवटा तर्कलाई मात्र समर्थन गर्दथ्यो।

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

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