পাইথনে সর্বশ্রেষ্ঠ সাধারণ ভাজক এবং সর্বনিম্ন সাধারণ মাল্টিপল কীভাবে গণনা করা যায় এবং প্রাপ্ত করা যায় তার একটি বর্ণনা নিচে দেওয়া হল।
- দুটি পূর্ণসংখ্যার সর্বশ্রেষ্ঠ সাধারণ ভাজক এবং সর্বনিম্ন সাধারণ গুণিতক
- তিন বা ততোধিক পূর্ণসংখ্যার সর্বশ্রেষ্ঠ সাধারণ ভাজক এবং সর্বনিম্ন সাধারণ গুণিতক
নোট করুন যে স্ট্যান্ডার্ড লাইব্রেরিতে প্রদত্ত ফাংশনগুলির বৈশিষ্ট্যগুলি পাইথন সংস্করণের উপর নির্ভর করে আলাদা। স্ট্যান্ডার্ড লাইব্রেরিতে নেই এমন একটি ফাংশনের বাস্তবায়নের উদাহরণও এই নিবন্ধে দেখানো হয়েছে।
- Python 3.4 বা তার আগের
- জিসিডি:
fractions.gcd()
(মাত্র দুটি যুক্তি)
- জিসিডি:
- পাইথন 3.5 বা তার পরে
- জিসিডি:
math.gcd()
(মাত্র দুটি যুক্তি)
- জিসিডি:
- Python 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() ফাংশনটি ভগ্নাংশ মডিউলে থাকে, গণিত মডিউলে নয়। ভগ্নাংশ আমদানি করতে হবে এবং fractions.gcd()।
সর্বনিম্ন সাধারণ হর
lcm() ফাংশন, যা সর্বনিম্ন সাধারণ একাধিক প্রদান করে, পাইথন 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 বা তার পরে
পাইথন 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