ذیل میں اس بات کی تفصیل ہے کہ Python میں سب سے بڑے کامن ڈیوائزر اور کم سے کم مشترک ملٹیپل کا حساب لگانا اور حاصل کرنا ہے۔
- دو عدد کا سب سے بڑا مشترک تقسیم اور کم سے کم مشترک ضرب
- تین یا زیادہ عدد کا سب سے بڑا مشترکہ تقسیم اور کم سے کم مشترک ضرب
نوٹ کریں کہ معیاری لائبریری میں فراہم کردہ فنکشنز کی وضاحتیں Python ورژن کے لحاظ سے مختلف ہوتی ہیں۔ اس آرٹیکل میں ایک فنکشن کا نفاذ جو معیاری لائبریری میں نہیں ہے اس کی مثال بھی دکھائی گئی ہے۔
- Python 3.4 یا اس سے پہلے
- جی سی ڈی:
fractions.gcd()(صرف دو دلائل)
- جی سی ڈی:
- Python 3.5 یا بعد کا
- جی سی ڈی:
math.gcd()(صرف دو دلائل)
- جی سی ڈی:
- Python 3.9 یا بعد کا
- جی سی ڈی:
math.gcd()(تین سے زیادہ دلائل کی حمایت کرتا ہے) - کم سے کم عام ڈینومینیٹر:
math.lcm()(تین سے زیادہ دلائل کی حمایت کرتا ہے)
- جی سی ڈی:
یہاں ہم معیاری Python لائبریری کا استعمال کرتے ہوئے طریقہ کی وضاحت کرتے ہیں۔ NumPy آسانی سے ایک سے زیادہ صفوں کے ہر عنصر کے لیے سب سے بڑے مشترکہ تقسیم اور کم سے کم عام ملٹیپل کا حساب لگانے کے لیے استعمال کیا جا سکتا ہے۔
دو عدد کا سب سے بڑا مشترک تقسیم اور کم سے کم مشترک ضرب
جی سی ڈی
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() فنکشن صرف دو دلائل کو سپورٹ کرتا تھا۔
تین یا اس سے زیادہ عدد کے سب سے بڑے مشترک تقسیم یا کم سے کم مشترک ضرب کو تلاش کرنے کے لیے، کسی خاص طور پر پیچیدہ الگورتھم کی ضرورت نہیں ہے۔ صرف ایک سے زیادہ قدروں میں سے ہر ایک کے لیے سب سے بڑے عام تقسیم یا کم سے کم عام ملٹیپل کا حساب لگائیں بدلے میں ہائی آرڈر فنکشن reduce() کا استعمال کریں۔
جی سی ڈی
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


